[Bf-blender-cvs] [26c1ae8] master: OpenSubdiv: Proper detection of crease changes

Sergey Sharybin noreply at git.blender.org
Wed Jul 29 18:08:27 CEST 2015


Commit: 26c1ae81be1542ebcf45671016cb56e11bb9be81
Author: Sergey Sharybin
Date:   Wed Jul 29 18:05:29 2015 +0200
Branches: master
https://developer.blender.org/rB26c1ae81be1542ebcf45671016cb56e11bb9be81

OpenSubdiv: Proper detection of crease changes

===================================================================

M	intern/opensubdiv/opensubdiv_converter.cc

===================================================================

diff --git a/intern/opensubdiv/opensubdiv_converter.cc b/intern/opensubdiv/opensubdiv_converter.cc
index 80c567b..76db28a 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;
 }




More information about the Bf-blender-cvs mailing list