[Bf-committers] getMeshDerivedMesh recomputes object->data normals?

Stephane SOPPERA stephane.soppera at wanadoo.fr
Sat Aug 26 20:16:28 CEST 2006


Hum... does somebody know something about this issue?

Stephane SOPPERA a écrit :
> Hi,
>
> I was trying with python Mesh module to give values of vertices 
> normals on a newly created mesh.
> I noticed that it's impossible and investigated the problem.
> Actually after the script is ended, since a new object and a new mesh 
> have been created, object_handle_update function calls 
> makeDispListMesh for the new object. makeDispListMesh then involves 
> this call stack:
> makeDispListMesh
>    mesh_build_data
>        mesh_calc_modifiers
>            getMeshDerivedMesh
>
> and in getMeshDerivedMesh there is a call to mesh_calc_normals with 
> mdm->verts=me->verts and vertCos=NULL
> This call recomputes the normals for each vertex (me->verts) of the 
> original data.
> Actually there is also a comment before the code:
>            // XXX this is kinda hacky because we shouldn't really be 
> editing
>            // the mesh here, however, we can't just call 
> mesh_build_faceNormals(ob)
>            // because in the case when a key is applied to a mesh the 
> vertex normals
>            // would never be correctly computed.
>            mesh_calc_normals(mdm->verts, me->totvert, me->mface, 
> me->totface, &mdm->nors);
>            mdm->freeNors = 1;
>
> So the consequence of all that is that each time the display mesh is 
> generated (this happen at least when an object is created and each 
> time the modifier stack is modified), original mesh normals are 
> recomputed and their previous value is lost.
> Is this a wanted behavior? Or is it a side effect?
>
> Stéphane
>
>
>
>
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers
>
>



More information about the Bf-committers mailing list