Hi All, Perhaps we should be asking the question what was the behavior prior to the refactor to I did for GL3/OpenGLES support. Sukender did your Geometry work previously? Is this a regression or just a behaviour that you weren't expecting?
Robert. On Fri, Jan 7, 2011 at 10:04 PM, Wojciech Lewandowski <lewandow...@ai.com.pl> wrote: > Hi, Jason > > I generally agree with your post that binding per primitive is a scene graph > thing, but I would disagree with such BIND_PER_PRIMITIVE interpretation: > >> BIND_PER_PRIMITIVE is a scene graph thing, it has nothing to do with pure >> OpenGL. All BIND_PER_PRIMITIVE means is this: >> glBegin(GL_TRIANGLE_STRIP); >> glNormal3f(...); >> glVertex3f(...); >> glVertex3f(...); >> ... >> glVertex3f(...); >> glEnd(); > > OpenGL argument against your example: you may also write similar > glBegin(GL_TRIANGLE)/glEnd() code with 2 triangles and one normal. It will > be correct OpenGL code. Would you say that two triangles correspond to one > OSG primitive or two OSG primitves in this case ? And if you do not pass > normal before second triangle, OpenGL will use last normal passed (ie the > one from first triangle): > > glBegin(GL_TRIANGLE); > glNormal3f(...); > glVertex3f(...); //1 > glVertex3f(...); //2 > glVertex3f(...); //3 > // no normal and its no error ! > glVertex3f(...); //4 > glVertex3f(...); //5 > glVertex3f(...); //6 > glEnd(); > > In the same way OpenGL assumes that last passed normal is used for the > triangle in triangle strip. Triangle Srip is just another method of passing > vertices to OpenGL and each triangle may have its own unique normals/colors. > If you don't agree, just do a reverse test: see if below would render both > triangles with the same color or different colors. They will differ, and > this is also correct OpenGL code: > > glShadeModel( GL_FLAT ); > glBegin(GL_TRIANGLE_STRIP); > glColor4f( 1, 0, 0, 1 ); // RED > glVertex3f(0, 0, 0); > glVertex3f(0, 1, 0); > glVertex3f(1, 0, 0); > glColor4f( 0, 1, 0, 1 ); // GREEN > glVertex3f(1, 1, 0); > glEnd(); > > Last argument is actually a postulate for OSG clarity. We have > BIND_PER_PRIMITIVE_SET flag. Shouldn't this flag be rather used for the > situation where we want to one normal / one color etc for all triangles in > tristrip ? > > Wojtek Lewandowski > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org