[Bf-blender-cvs] [4140312] master: OpenSubdiv: Make sure normals passed to OSD are all up to date

Sergey Sharybin noreply at git.blender.org
Wed Aug 5 19:22:18 CEST 2015


Commit: 4140312c36f2f3a691072b1a60d0b9b05c09ac17
Author: Sergey Sharybin
Date:   Wed Aug 5 19:19:05 2015 +0200
Branches: master
https://developer.blender.org/rB4140312c36f2f3a691072b1a60d0b9b05c09ac17

OpenSubdiv: Make sure normals passed to OSD are all up to date

Solves shading artifacts with animated characters.

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

M	source/blender/modifiers/intern/MOD_subsurf.c

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

diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c
index 08c0df3..c3bc5ce 100644
--- a/source/blender/modifiers/intern/MOD_subsurf.c
+++ b/source/blender/modifiers/intern/MOD_subsurf.c
@@ -170,6 +170,16 @@ static DerivedMesh *applyModifierEM(ModifierData *md, Object *UNUSED(ob),
 	return result;
 }
 
+static bool dependsOnNormals(ModifierData *md)
+{
+#ifdef WITH_OPENSUBDIV
+	SubsurfModifierData *smd = (SubsurfModifierData *) md;
+	if (smd->use_opensubdiv && md->next == NULL) {
+		return true;
+	}
+#endif
+	return false;
+}
 
 ModifierTypeInfo modifierType_Subsurf = {
 	/* name */              "Subsurf",
@@ -196,7 +206,7 @@ ModifierTypeInfo modifierType_Subsurf = {
 	/* updateDepgraph */    NULL,
 	/* updateDepsgraph */   NULL,
 	/* dependsOnTime */     NULL,
-	/* dependsOnNormals */	NULL,
+	/* dependsOnNormals */	dependsOnNormals,
 	/* foreachObjectLink */ NULL,
 	/* foreachIDLink */     NULL,
 	/* foreachTexLink */    NULL,




More information about the Bf-blender-cvs mailing list