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>2019-04-05 15:13:05 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-04-05 15:50:24 +0300
commitd220a87b47e317996e58cf5c597c872bc8970925 (patch)
tree41e4f7d6d30e1421850cbaefb4cae4714ec141e0 /source/blender/blenkernel/intern/subdiv_converter_mesh.c
parent6de0da70de303d6510564bc745a72b7c8a04d929 (diff)
Fix T63283: Second subdivision modifier does not ignore crease
This is something where there is no single correct behavior, sometimes it's needed to ignore the crease to make mesh more smooth. But sometimes crease is to be considered after first subdivision surface: for example, when adding extra subdivisions for render-time displacement. Made it an option whether modifier needs to take crease into account or not. Existing files should be openable in the 2.7 compatible way, to re-create an old behavior the options is to be manually disabled in the modifier settings. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4652
Diffstat (limited to 'source/blender/blenkernel/intern/subdiv_converter_mesh.c')
-rw-r--r--source/blender/blenkernel/intern/subdiv_converter_mesh.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/subdiv_converter_mesh.c b/source/blender/blenkernel/intern/subdiv_converter_mesh.c
index 00a2436098e..eda6b522b85 100644
--- a/source/blender/blenkernel/intern/subdiv_converter_mesh.c
+++ b/source/blender/blenkernel/intern/subdiv_converter_mesh.c
@@ -168,6 +168,9 @@ static float get_edge_sharpness(const OpenSubdiv_Converter *converter,
return 10.0f;
}
#endif
+ if (!storage->settings.use_creases) {
+ return 0.0f;
+ }
const int edge_index =
storage->manifold_edge_index_reverse[manifold_edge_index];
const MEdge *medge = storage->mesh->medge;
@@ -190,9 +193,13 @@ static bool is_infinite_sharp_vertex(const OpenSubdiv_Converter *converter,
vertex_index);
}
-static float get_vertex_sharpness(const OpenSubdiv_Converter *UNUSED(converter),
+static float get_vertex_sharpness(const OpenSubdiv_Converter *converter,
int UNUSED(manifold_vertex_index))
{
+ ConverterStorage *storage = converter->user_data;
+ if (!storage->settings.use_creases) {
+ return 0.0f;
+ }
return 0.0f;
}