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-09-21 15:53:21 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-09-21 15:53:21 +0300
commit8da3c5c1b9585826209fe3c0cbbead06bda1cfc1 (patch)
tree3bd33ba087589b859e4c7864fd2ff9d54b58146b
parentdbdb1064e7fb7984e17e7bdd89cfb6b688584986 (diff)
Fix T46159: OpenSubdiv does not always give same results as Blender own subsurf code with crease edges
-rw-r--r--intern/opensubdiv/opensubdiv_converter.cc8
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;