Normals
A true normal is the actual normal at a point on a surface. For a
given vertex, the true normal can be approximated by calculating
the weighted average of the face normals that surround that vertex.
MoI always uses true normals; Blender uses approximated normals.
Importing and Exporting
A while ago, I wrote a Blender script that imports MoI's true
normals into Blender. See this post
for more info.
The problem is that Blender recalculates the vertex normals when
performing either of these two actions:
- editing the mesh (i.e., press TAB).
- rendering the scene.
There are other actions that trigger a recalc, such as joining
meshes, applying modifiers, flipping normals, assign a material to
selected faces, editing UV coordinates, etc., but the above two are
the most common.
This makes the script somwehat useless. However, if exporting to an
external renderer (without performing any of the above actions)
then the true normals are exported and rendered properly, provided
that the renderer does not recalculate them.
The best solution is to enable Blender to leave the imported
normals alone, and the following custom build does just that. My
script is now much more useful.
True vs. Averaged Normals
Note: The following tests were made with MoI v1. If using v2, make
sure your LWO options are set to "Modo style normals."
The object is a simple sweep with a G3 fillet at the bottom, which
happens to cause some nasty artifacts. Note that the highlight is
much smoother in both, and all rendering errors pertaining to
normals are completely gone. As you can see true normals can make a
big difference.
Blender's OpenGL preview:
Blender's Internal Renderer:
Installation
Rename your original 2.49b executable, and put this one in the same
directory. To make sure you are running the modified version, check
the about box. It will will have a 2010 build date at the bottom.
A complete build of Blender 2.5 (svn version 30116) can be
downloaded here
(20MB). Just unzip and run it. Includes a script that imports MoI's
true normals.
Usage
To use imported normals, you must enable the "Preserve Imported
Normals" option in the System tab of user preferences.
Then, import your objects. If you enable this option and save the
preferences, you will be in MoI mode all the time. Disabling this
option returns Blender to it's previous state, and pressing TAB or
rendering will recalculate normals.
Blender 2.49b:
Blender 2.52:
|