General Category > Anim8or v0.98 Discussion Forum

Importing obj surface normals


I exported an icosahedron with hard edges from Wings3D two ways, one with surface normals, one without. When I import these into sme other 3d apps, they look as expected, the obj with surface normals showing hard edges, the one without normals smoothing the edges. Anim8or shows both the same. It looks like Anim8or is ignoring the imported surface normals and calculating them just based on the smoothing angle. I have seen people having this problem in Lightwave, and found this comment on a Lightwave forum:

"Since I know that Lightwave's OBJ importer ignores vertex normals"

I tried un-checking the "use new OGL renderer" option, but render still shows soft edges. Does Anim8or use the surface normals when present in an obj file?


For meshes, Anim8or also ignores imported normals and computes it's own It uses a parameter called the Smooth Angle to determine if an edge is hard or not. Double click on a mesh in the Object Editor and you can change the value. Any solid angle below the value is smooth, and those equal or greater are sharp.

Note: The renderer doesn't alter this parameter, only which code path is used to show the 3D images.

Yes, I saw the smoothing angle property. This works ok for simple models, but I have models for which this strategy doesn't work. Here's a comment from on this issue with C4S:

"As noted in the previous paragraphs, CINEMA 4D does not naturally use the more common and accurate "explicit vertex normals" capability as is used with most 3D software. Rather, meshes are associated with a "Phong Tag" that allows new vertex normals to be computed internally on the fly, based on a cut-off smoothing angle. Unfortunately these re-computed vertex normals are prone to errors in their computations, especially for single meshes with both smooth parts and abrupt angular parts, such as is often the case with CAD files (ie. a rotor assembly). Having a single cut-off smoothing angle for an entire complex mesh just does not allow for proper vertex normals computation - this problem is shared exactly with the Lightwave animation system for which its smoothing angle (its own concept of the Phong Tag) is associated with the material assigned to the mesh."

I've found this observation to be quite true. It would be nice if Anim8or used the vertex normals in the obj file. I suspect the only workaround right now is to split a model along hard edges that are shallow, but this is often impractical unless the model is simple.



Just a comment.
The angle is not the only factor.
As the manual says,you can mark an edge as creased, so that it won't be drawn as a smooth surface but will appear as a sharp crease.
Double click edge to access edge properties
or select multiple edges and Edit→Edge-Properties command.



[0] Message Index

Go to full version