Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-07-29 19:05:29 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-07-29 19:05:29 +0300
commit26c1ae81be1542ebcf45671016cb56e11bb9be81 (patch)
tree03f5e834e5624dff200efd02b41de59f5c258388 /intern/opensubdiv
parent48c2f7b28856b657c67c9b0648f655223bf23980 (diff)
OpenSubdiv: Proper detection of crease changes
Diffstat (limited to 'intern/opensubdiv')
-rw-r--r--intern/opensubdiv/opensubdiv_converter.cc14
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;
}