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

Solves shading artifacts with animated characters.
This commit is contained in:
Sergey Sharybin 2015-08-05 19:19:05 +02:00
parent 02f553cc7a
commit 4140312c36
1 changed files with 11 additions and 1 deletions

View File

@ -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,