diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-01-09 02:47:03 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-01-09 02:47:03 +0300 |
commit | cda359c358082bec1b5c9d91362fd4cf8dc9af97 (patch) | |
tree | 53302d2f0f9907401137ca832a378b279e68ee64 /source/blender/blenkernel/intern/cdderivedmesh.c | |
parent | f59f4d73a247e6b80bbb20a3c35b1847e1713fde (diff) |
Fix for bug #5606:
Subsurf modifier displays normals wrong with mixed smooth and solid faces.
Diffstat (limited to 'source/blender/blenkernel/intern/cdderivedmesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index d2b7ecaf881..e17b6da11ef 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -280,7 +280,6 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, int (*setMaterial)(int)) if(shademodel == GL_FLAT) { if (nors) { glNormal3fv(nors); - nors += 3; } else { /* TODO make this better (cache facenormals as layer?) */ @@ -304,6 +303,8 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, int (*setMaterial)(int)) PASSVERT(mface->v4); } } + + if(nors) nors += 3; } glEnd(); @@ -413,7 +414,6 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm, if(!(mf->flag&ME_SMOOTH)) { if (nors) { glNormal3fv(nors); - nors += 3; } else { /* TODO make this better (cache facenormals as layer?) */ @@ -457,6 +457,8 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm, glVertex3fv(mvert->co); } glEnd(); + + if(nors) nors += 3; } } @@ -496,7 +498,6 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us if (!drawSmooth) { if (nors) { glNormal3fv(nors); - nors += 3; } else { /* TODO make this better (cache facenormals as layer?) */ @@ -541,6 +542,8 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us glEnd(); } + + if (nors) nors += 3; } } |