[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45008] trunk/blender/source/blender/ modifiers/intern/MOD_boolean_util.c: partial fix for bug where booleans were using invalid face/poly normals.
Campbell Barton
ideasman42 at gmail.com
Tue Mar 20 01:51:42 CET 2012
Revision: 45008
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45008
Author: campbellbarton
Date: 2012-03-20 00:51:37 +0000 (Tue, 20 Mar 2012)
Log Message:
-----------
partial fix for bug where booleans were using invalid face/poly normals.
the problem remains (though not quite as bad) but think this is because of a bug elsewhere.
Modified Paths:
--------------
trunk/blender/source/blender/modifiers/intern/MOD_boolean_util.c
Modified: trunk/blender/source/blender/modifiers/intern/MOD_boolean_util.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_boolean_util.c 2012-03-19 22:29:16 UTC (rev 45007)
+++ trunk/blender/source/blender/modifiers/intern/MOD_boolean_util.c 2012-03-20 00:51:37 UTC (rev 45008)
@@ -354,9 +354,9 @@
// create a new DerivedMesh
result = CDDM_new(vertex_it->num_elements, 0, face_it->num_elements, 0, 0);
- CustomData_merge(&dm1->faceData, &result->faceData, CD_MASK_DERIVEDMESH,
+ CustomData_merge(&dm1->faceData, &result->faceData, CD_MASK_DERIVEDMESH & ~CD_MASK_NORMAL,
CD_DEFAULT, face_it->num_elements);
- CustomData_merge(&dm2->faceData, &result->faceData, CD_MASK_DERIVEDMESH,
+ CustomData_merge(&dm2->faceData, &result->faceData, CD_MASK_DERIVEDMESH & ~CD_MASK_NORMAL,
CD_DEFAULT, face_it->num_elements);
// step through the vertex iterators:
@@ -466,6 +466,17 @@
CDDM_calc_edges_tessface(result);
CDDM_tessfaces_to_faces(result); /*builds ngon faces from tess (mface) faces*/
+
+ /* this fixes shading issues but SHOULD NOT.
+ * TODO, find out why face normals are wrong & flicker - campbell */
+#if 0
+ DM_debug_print(result);
+
+ CustomData_free(&result->faceData, result->numTessFaceData);
+ result->numTessFaceData = 0;
+ DM_ensure_tessface(result);
+#endif
+
CDDM_calc_normals(result);
return result;
More information about the Bf-blender-cvs
mailing list