[Bf-blender-cvs] [ea75371] master: Fix another shading issue with new split normals (deform modifier after a subsurf one).
Bastien Montagne
noreply at git.blender.org
Mon Apr 21 17:59:37 CEST 2014
Commit: ea753710bf81560ebf0d7c7639e69758246a5076
Author: Bastien Montagne
Date: Mon Apr 21 17:56:05 2014 +0200
https://developer.blender.org/rBea753710bf81560ebf0d7c7639e69758246a5076
Fix another shading issue with new split normals (deform modifier after a subsurf one).
Just always tag tessellated CDlayers as dirty when we recompute split normals!
Also simplified a bit end of mesh_calc_modifiers.
===================================================================
M source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index c35efc8..10d6ec8 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -402,6 +402,7 @@ void DM_ensure_normals(DerivedMesh *dm)
static void DM_calc_loop_normals(DerivedMesh *dm, float split_angle)
{
dm->calcLoopNormals(dm, split_angle);
+ dm->dirty |= DM_DIRTY_TESS_CDLAYERS;
}
/* note: until all modifiers can take MPoly's as input,
@@ -1877,18 +1878,9 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
if (do_loop_normals) {
/* Compute loop normals (note: will compute poly and vert normals as well, if needed!) */
DM_calc_loop_normals(finaldm, loop_normals_split_angle);
-
- if (finaldm->getNumTessFaces(finaldm) == 0) {
- finaldm->recalcTessellation(finaldm);
- }
- /* Even if tessellation is not needed, we have for sure modified loop normals layer! */
- else {
- /* A tessellation already exists, it should always have a CD_ORIGINDEX. */
- BLI_assert(CustomData_has_layer(&finaldm->faceData, CD_ORIGINDEX));
- DM_update_tessface_data(finaldm);
- }
}
- else {
+
+ {
/* calculating normals can re-calculate tessfaces in some cases */
#if 0
int num_tessface = finaldm->getNumTessFaces(finaldm);
More information about the Bf-blender-cvs
mailing list