[osg-users] VBO Bug with 3.6.1 and Normal Arrays

Robert Osfield robert.osfield at gmail.com
Wed Jun 13 04:45:06 PDT 2018


Hi Dan et. al,

I have had another look into this issue, looked at Dan's workaround
and used Dan's test example to see investigate what might be going on.
I have checked in a fix:

     https://github.com/openscenegraph/OpenSceneGraph/commit/673292b995115c6ca9a3cc82c26e05023f504774

This allows the test example to work correctly in all different
combinations with the realizer operation on/off etc.

What I believe is the problem is that the the VertexArrayState object
gets initialized by the realizer operation and uses the
State::getUseVertexAttributeAliasing() that was current at the time of
the realizer operation, then code then calls
State::setUseVertexAttributeAliasing() afterwards to a different
value, so the rest of the OSG assumes that is now the current value
but the global VertexArrayState is still set up against the original
value so is passing using GL vertex array settings that are
inconsistent with the shaders.

The solution is simple reassign the VertexArrayState for each call to
State::setUseVertexAttributeAliasing().

I have only tested with Dan's test program, there is chance that other
usage cases might tease out the issue in a different way, fingers
crossed the just solves all these issue.

Could users who've seen issues with the arrays being used correctly
update to the head of the OpenSceneGraph-3.6 branch and let me know
how you get on.

If this all works fine then we can start looking at a release of 3.6.2
this month.

Cheers,
Robert.


More information about the osg-users mailing list