3ds max ASE export: incorrect vertex normals

Started by
2 comments, last by szecs 14 years, 10 months ago
Hi all! Maybe this isn't the right place for this topic, but anyway: I exported a model to .ASE with 3ds max 5, to obtain the vertex normals. That worked perfectly. But I exported the same model to .ASE with 3ds max 9, and the vertex normals seem to be un-precise. It is spectacular when using cylinders or spheres, when the vertex normals should be perpendicular to the theoretical surface, which exists when exporting with Max 5. So the cylinders seem a bit twisted with Max 9 ASE. The polygons are triangulated in the same way in both versions. My ASE reading code works fine. So It must be something with Max 9. Maybe there is a plugin for that or I don't know. One thing is clear, The Max 9 swaps the orders of the triangle pairs (making the quads) in its exports. Some shots from the ASE files. It seems that the normals are different at the same vertexes. Max 5

*MESH_FACE  568:    A:  331 B:  340 C:  342 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  569:    A:  342 B:  341 C:  331 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  570:    A:  341 B:  342 C:  343 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  571:    A:  343 B:  333 C:  341 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  572:    A:  333 B:  343 C:  335 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  573:    A:  335 B:  326 C:  333 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
.
.
.
*MESH_FACENORMAL 568	0.5398	-0.3221	0.7777
*MESH_VERTEXNORMAL 331	0.5702	-0.5809	0.5809
*MESH_VERTEXNORMAL 340	0.5702	-0.5809	0.5809
*MESH_VERTEXNORMAL 342	0.5702	0.0000	0.8215
*MESH_FACENORMAL 569	0.5398	-0.3221	0.7777
*MESH_VERTEXNORMAL 342	0.5702	0.0000	0.8215
*MESH_VERTEXNORMAL 341	0.5702	0.0000	0.8215
*MESH_VERTEXNORMAL 331	0.5702	-0.5809	0.5809

Max 9

*MESH_FACE  568:    A:  342 B:  341 C:  331 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  569:    A:  331 B:  340 C:  342 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  570:    A:  343 B:  333 C:  341 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  571:    A:  341 B:  342 C:  343 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  572:    A:  335 B:  326 C:  333 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
*MESH_FACE  573:    A:  333 B:  343 C:  335 AB:    1 BC:    1 CA:    0	 *MESH_SMOOTHING 2 	*MESH_MTLID 0
.
.
.
*MESH_FACENORMAL 568	0.5398	-0.3221	0.7777
*MESH_VERTEXNORMAL 342	0.5666	-0.1127	0.8163
*MESH_VERTEXNORMAL 341	0.5666	0.1127	0.8163
*MESH_VERTEXNORMAL 331	0.5666	-0.4975	0.6569
*MESH_FACENORMAL 569	0.5398	-0.3221	0.7777
*MESH_VERTEXNORMAL 331	0.5666	-0.4975	0.6569
*MESH_VERTEXNORMAL 340	0.5666	-0.6569	0.4975
*MESH_VERTEXNORMAL 342	0.5666	-0.1127	0.8163
Even if you swap the triangle pairs, the vertex normals differ a bit. (the face normals are the same) Maybe they differ, because the swapped pairs, but I'm sure something is with Max 9. Thanks!
Advertisement
Hi,

.ASE format isn't very stable and I would suggest use .3DS or COLLADA instead (I had problems with .ASE in the past and I really do not recommend using it). If you need really simple information about the geometry you can write script in MaxScript to do that.

Best regards,
Paool
Thanks for the quick reply!
The problem is that 3Ds doesn't store the normal values, so I have to calculate them for myself, which is fine, if I want to use quads, but with triangles it's tricky, because I don't know how to handle coplanar triangles, but it's an other topic.
Thanks anyway!
This is not solved yet, so if anyone has any ideas, please let me know!

Thanks!

[Edited by - szecs on July 9, 2009 8:23:11 AM]

This topic is closed to new replies.

Advertisement