From 26c1ae81be1542ebcf45671016cb56e11bb9be81 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 29 Jul 2015 18:05:29 +0200 Subject: [PATCH] OpenSubdiv: Proper detection of crease changes --- intern/opensubdiv/opensubdiv_converter.cc | 14 ++++++++------ 1 file 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; }