Thank you Paul for your response. Yes, you are right, the solution isn't perfect at all. But I'm integrating some external code which is just giving me a vertex array and a per triangle callback with vertex indexes and normal and texture coords.
And further more I need some screenshots very urgently for a customer presentation. The performance improvement has to wait :-( So I try to analyse why it's not working. And I detected something I don't understand. In my opinion it should give the same result having: 1) one normal per triangle an binding PER_PRIMITIVE 2) 3 times the same normal and binding PER_PRIMITIVE_SET But it doesn't. So I'm confused. Thanks for further hints. - Werner - Am Mittwoch, 25. August 2010 22:41:14 schrieb Paul Martz: > Werner Modenbach wrote: > > Maybe someone can give me some explanation on my stupid little problem. > > > > I have a geometry being composed of TRIANGLES. > > I have a vertex-array, a verted-index-array and a normal-array assigned > > to my geometry. > > Off-topic: Do you need to use the vertex-index-array? It is deprecated: > /** deprecated - forces OpenGL slow path, just kept for backwards > compatibility.*/ > void setVertexIndices(IndexArray* array); > > > 3 indexes and 3 normals per Triangle. > > Normal binding is set to BIND_PER_PRIMITIVE_SET. > > > > Unfortunately the rendering shows the geometry flat in curious dark > > colors and some unexpected light behaviour. > > For analysis purpose I set the normal binding to BIND_PER_PRIMITIVE and > > pushed just 1 normal per TRIANGLE. > > Everything looks good except I see the triangles and the geometry isn't > > smooth. > > The next test is pushing the same normal vector 3 times and setting the > > binding back to BIND_PER_PRIMITIVE_SET. > > In my understanding this should give the same optical result as before. > > Unfortunately it doesn't and everything is dark again. > > > > I guess, I misunderstand something with the normal bindings. > > > > Any hint is highly appreciated. Thanks in advance > > I'm not sure why you don't use BIND_PER_VERTEX, as you stated above that > your normal array contains 3 normals per triangle, so you have one normal > per vertex, right? > > BIND_PER_PRIMITIVE would result in flat shading (only one normal used for > each triangle -- which, by the way, also forces OpenGL down the slow > path), and BIND_PER_PRIMITIVE_SET would be even more granular: one normal > used for each PrimitiveSet you add to the Geometry. This would make all > triangles in the PrimitiveSet either uniformly dark or uniformly lit, > depending on the direction of the one normal used for the whole group. > > For analysis purposes, I suggest using the normals pseudoloader: > > osgviewer dumptruck.osg.normals > > Hope that helps, > -Paul > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org -- TEXION Software Solutions TEXION GmbH - Rotter Bruch 26a - D 52068 Aachen - HRB 14999 Aachen Fon: +49 241 475757-0, Fax: +49 241 475757-29, web: http://www.texion.eu Geschäftsführer/Managing Director: Werner Modenbach _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

