This is a submission to fix a problem with use of mode GL_RESCALE_NORMAL for
geometries below a scaling transform which is not equal in X, Y & Z components.
In this case, the 'slow' method of mode GL_NORMALIZE should be used to perform
the normalization.
I have attached a correction to daeRTransforms.cpp based on trunk at [12892]
which corrects this problem.
This is the changed section:
Code:
if (scale.x() == scale.y() && scale.y() == scale.z())
{
// This mode may be quicker than GL_NORMALIZE, but ONLY works if x,
y & z components of scale are the same.
ss->setMode(GL_RESCALE_NORMAL,
osg::StateAttribute::ON|osg::StateAttribute::OVERRIDE);
}
else
{
// This mode may be slower than GL_RESCALE_NORMAL, but does work if
x, y & z components of scale are not the same.
ss->setMode(GL_NORMALIZE,
osg::StateAttribute::ON|osg::StateAttribute::OVERRIDE);
}
Chris Denham
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=44393#44393
Attachments:
http://forum.openscenegraph.org//files/daertransforms_104.cpp
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org