diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-29 19:05:29 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-29 19:05:29 +0300 |
commit | 26c1ae81be1542ebcf45671016cb56e11bb9be81 (patch) | |
tree | 03f5e834e5624dff200efd02b41de59f5c258388 /intern/opensubdiv | |
parent | 48c2f7b28856b657c67c9b0648f655223bf23980 (diff) |
OpenSubdiv: Proper detection of crease changes
Diffstat (limited to 'intern/opensubdiv')
-rw-r--r-- | intern/opensubdiv/opensubdiv_converter.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/intern/opensubdiv/opensubdiv_converter.cc b/intern/opensubdiv/opensubdiv_converter.cc index 80c567beef8..76db28ab68e 100644 --- a/intern/opensubdiv/opensubdiv_converter.cc +++ b/intern/opensubdiv/opensubdiv_converter.cc @@ -461,17 +461,19 @@ int openSubdiv_topologyRefnerCompareConverter( } } /* Compare sharpness. */ -#if 0 - /* TODO(sergey): For some reason shrapness is not being reported correctly - * from the base level, which cuases false-positive topology change detection. - */ for (int edge = 0; edge < num_edges; ++edge) { + ConstIndexArray edge_faces = base_level.GetEdgeFaces(edge); float sharpness = base_level.GetEdgeSharpness(edge); - float conv_sharpness = converter->get_edge_sharpness(converter, edge); + float conv_sharpness; + if (edge_faces.size() == 2) { + conv_sharpness = converter->get_edge_sharpness(converter, edge); + } + else { + conv_sharpness = OpenSubdiv::Sdc::Crease::SHARPNESS_INFINITE; + } if (sharpness != conv_sharpness) { return false; } } -#endif return true; } |