Surface normal in a mess when exporting

 From:  Michael Gibson
4602.8 In reply to 4602.6 
Hi Gep - it looks like you're talking about face normals, not actually "vertex normals" ?

Vertex normals are used just for shading, they're what are in the vertex normal map and they don't actually control whether a face is a "front face" or "back face" - front/back face determination comes from the face normal, not from vertex normals.

From what I can see in your image there, that looks like a rendering (not a viewport screenshot, right) and there does not seem to be any shading artifacts, instead there are just some pieces missing entirely, is that correct?


The easiest way to deal with inconsistent face normals is to just set your render material to be a double sided material and then you don't have to worry about it - with double sided materials both front faces and back faces will render equally as well so that should sovle your problem if I understand it correctly.

If there is some reason why you don't want to just use double-sided materials, then a couple of other methods you can use is to run the "Flip" command in MoI to flip a non-solid surface object to the reverse direction:
http://moi3d.com/2.0/docs/moi_command_reference10.htm#flip

But also the best method tends to be to make solids out of your objects - solids will automatically have their surface normals oriented to point towards the outside of the solid so that would solve your problem. That should work even if you use Separate on the object after it has become a solid initially - surfaces that are separated off of a solid should maintain the same outward normal of the solid they came from.

Normally it's good though to just export solids without separating them first - could you maybe show some more detail about the "otherwise every n-gons render with creases." problem? That should not normally be an issue. Did you possibly delete the vertex normal map in the case where you saw creased rendering? If you leave the vertex normals intact and don't end up with invalid vertex normals by doing a transform while not in item mode, then there should not normally be creases showing between geometry that is smooth. That's basically the point of vertex normals is that having the accurate normals come through and get used in the rendering prevents shading artifacts.


A single individual surface that has never been a part of a solid has an arbitrary direction for its positive-direction normal though that will depend on things like whether you drew its original input curves in a clockwise or counter-clockwise direction. A single surface all on its own doesn't know whether it's the front face or the back face of your building, it's only when it gets joined into a solid that it can have knowledge of its orientation like that since it then has a volume to reference.

But really the easiest thing to do is to just not render with single sided materials - use double-sided material surfaces and you should not have to worry about which direction surface normals happen to be pointing in at all.

Hope this helps!

- Michael