Reputation: 11
Theres to meshes closed to each other. I need to copy normal from one mesh to another mesh with maxscript.the target vertexs are those points at same position. But the result is strange, even the value of normal is same , the towards is wrong. I have try some methods to get/set normal, in coordsys world/local/parent.. But make no sense. How can i get the correct result?
Upvotes: 0
Views: 1993
Reputation: 11
The two mesh should do "reset xform" ...Or we can transform the normal of A to world to get worldNormal.And Then transform the worldNormal to the local space of B to get the normalB...
Upvotes: 1
Reputation: 367
You probably want to try using the Edit_Normal modifier to specify explicit normals. https://help.autodesk.com/view/3DSMAX/2020/ENU/?guid=GUID-9F33B780-7A98-4638-BD00-A1725FA1DB70
According to this documentation if you use setFaceNormal to setup normal directly on your mesh,
As soon as you run update() on the mesh, this value is overwritten.
https://help.autodesk.com/view/3DSMAX/2020/ENU/?guid=GUID-58D1F8B6-0012-4727-AA29-B2C79EA46E16
However it doesn't seems to work the same for vertex normals, this might be good enough for you?
Since 3ds Max 2015, setting a vertex normal sets the normal as Explicit, so it will retain its value when the mesh gets updated. In versions prior to 3ds Max 2015, setting the vertex normal using MAXScript had only a very short lasting effect because the data would be easily overwritten by the Smoothing Group-based implicit normal recalculation on viewport redraw or scene rendering.
https://help.autodesk.com/view/3DSMAX/2020/ENU/?guid=GUID-BD473113-389F-4C96-BE07-217FF75796EF
Upvotes: 0