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

Reply via email to