Texture coordinates are not being generated correctly if multiple SoTextureCoordinatePlane nodes are used and not under their own SoSeparator. Only the first set of coordinates are used.
See the Inventor Mentor code sample 07.3.TextureFunction.cpp to reproduce the bug:
Instead of getting this:
running the program produces this:
Putting each SoTextureCoordinatePlane, SoSphere pair under their own SoSeparator works around the bug (see attachment).
Traced the issue to the SoGLMultiTextureCoordinateElement.cpp file. This code is only performing the first texgen callback (SoTextureCoordinatePlane::handleTexgen) it encounters at a given stack level:
in the setElt function.
This could affect other nodes which use the SoGLMultiTextureElement code. I'm not too familiar with multitexturing in OpenGL, so maybe the alternative is that the Mentor example is out of date.
My OpenGL Info: OpenGL version: 3.0 Mesa 10.1.3