diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-09-21 15:53:21 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-09-21 15:53:21 +0300 |
commit | 8da3c5c1b9585826209fe3c0cbbead06bda1cfc1 (patch) | |
tree | 3bd33ba087589b859e4c7864fd2ff9d54b58146b /intern/opensubdiv | |
parent | dbdb1064e7fb7984e17e7bdd89cfb6b688584986 (diff) |
Fix T46159: OpenSubdiv does not always give same results as Blender own subsurf code with crease edges
Diffstat (limited to 'intern/opensubdiv')
-rw-r--r-- | intern/opensubdiv/opensubdiv_converter.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/intern/opensubdiv/opensubdiv_converter.cc b/intern/opensubdiv/opensubdiv_converter.cc index 5d43cafd1f3..3fadde68d32 100644 --- a/intern/opensubdiv/opensubdiv_converter.cc +++ b/intern/opensubdiv/opensubdiv_converter.cc @@ -467,6 +467,14 @@ inline bool TopologyRefinerFactory<OpenSubdiv_Converter>::assignComponentTags( break; } } + if (vert_edges.size() == 2) { + int edge0 = vert_edges[0], + edge1 = vert_edges[1]; + float sharpness0 = conv.get_edge_sharpness(&conv, edge0), + sharpness1 = conv.get_edge_sharpness(&conv, edge1); + float sharpness = std::min(sharpness0, sharpness1); + setBaseVertexSharpness(refiner, vert, sharpness); + } } return true; |