On 22-Aug-05, at 12:14 PM, Lo Saeteurn wrote:
Using the Quaternion.Transform seems to give the same results as
using the rotation matrix from your code. The problem with the
lighting was because I didn't recalculate/transform the vertex
normals.
Regenerating the vertex normals like you did in 3DMF Workshop seems
expensive and destructive. It seems destructive because it does not
use the original normals instead it generates new ones. So if I
have objects that had normals generated for hard edges, wouldn't
they be lost? Or does the limiting angle fix this?
Ya, that's what the angle limit does but of course you'll need to
know the original angle limit for this to be useful, and not all
normal generating algorithms are equal, so the depending on how the
originals were made you may see differences. Also keep in mind that
the transforms in 3DMF Workshop always work around an origin of 0,0,0
(hmmm, just like Quaternion.Transform) so you'll need to translate
the vertexes back to their proper location. Depending on how you're
data is setup, you may need to translate to 0,0,0 first as well. So
on second thought, Quaternion.Transform might work just fine,
combined with one or two translations as needed... sorry for the
confusion!
I read an article (http://www.gignews.com/realtime020100.htm)
saying that transforming vertex normals using the same approach as
the vertex points was okay as long as the transformation was "a
series of rotations, translations, and uniform scalings, the normal
can be safely transformed by this same matrix".
Can anyone confirm this or am I reading it wrong?
That's correct - the only time you need to recalculate normals from
scratch is when the relative angles of the faces change, as they
would for a non-uniform scale or deformations that involve vertex
animation. I suppose I could do this for certain operations in 3DMF
workshop as well, but it just feels "safer" to recreate them from
scratch (plus I don't have to keep the original normals around). In a
real-time app I'd definitely avoid recalculating normals whenever
possible however...
Frank.
–––––––––––––––––––––––––––––––––
Open Source RB Goodies and Shareware
<http://developer.chaoticbox.com/>
<http://www.chaoticbox.com/>
–––––––––––––––––––––––––––––––––
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
|