FaceArray?

OpenGL 1.1 currently has glVertexArray etc. which helps on passing large array of Vertex attributes, however, when scene has large amount of triangles, let’s say > 1M triangles, each triangle generally rendered in a pixel, sometimes more than one triangles in a pixel, in this case, flat shading and smooth shading producing same image, it would be very usefule if face (triangle) array can be handled similar to vertex array, so user can pass face normal, face color etc in parallel to face index array. The TriangleArray array extension can help on many other front in handling large trinagle set. With subdivision surface and laser scanner, multi-million triangle object is very common already. Can anybody advise if the implementation can be a problem of OpenGL state machine?

– Youda

Why not just use vertex arrays using points? It ends up being the same thing as if each element in an array represents a face and each face is one pixel. And it’s possible with the current OpenGL standard already.

j

Because the two aren’t equivalent. Points and triangles aren’t the same. Though the problem was specified such that goroud shading and flag shading produce the same result, what if you zoom in? While you might want to go ahead and use goroud shading, maybe it doesn’t come up very often. Having flat shading be somewhat apparent is not nearly as bad as having the model disentegrate into points.

This is a pretty reasonable extension request. The only snag (besides multiply indexing arrays) would probably be that most extensions really assume per-vertex parameters are the norm. Most implementations would likely be pretty slow about rendering them, since triangle strips don’t really work as vertex data is not constant over adjacent triangles.

Face array is different from vertex array, in that if vertex color is used as face color, the last vertex color will determine the face color, most likely vertex is shared by several faces. The usage is not limited to color alone, in applications need huge amount of vertex (there exists data set with 100 million vertex) faces are so small, that you can’t see them. Faqce array can be used for other purpose as well. Selection, culling etc.

I don’t see too many people interested in this topic. But I there are really some very useful renderings can benifit from having indexed array for face.

such as multipass rendering using face to do selection. Cull invisible faces.

What is the process to make a OpenGL extension?

– Youda