views:

70

answers:

1

Short version: What's the best practice going forward for efficiently rendering large numbers of independent texture-mapped, lighted 2D/3D primitives (circles, rects, etc.) in OpenGL?

For example: a typical particle system using billboarded quads/triangles, point sprites, or whatever other technique, with blending.

alt text

Because after reading this thread on the messiness of OpenGL versioning/deprecation I'm starting to have my doubts.

My specific question is not the ABCs of displaying primitives in OpenGL, but rather how to do so efficiently in post-deprecation (or pre-deprecation) OpenGL, in a way that's going to be compatible with a wide range of commodity hardware and in a way that's not going to break or itself get deprecated, five years down the line.

Thanks!

+1  A: 

I'm still trying to get a handle on the post-deprecation OpenGL world myself.

From what I understand though, the recommended methods for specifying geometry are Vertex Buffer Objects (VBOs) or vertex arrays. VBOs are the first preference, because the vertex data lives in the GPU's memory.

Also, you have to use shaders, because all the fixed-pipeline functionality is deprecated.

This stuff all works in OpenGL 2.1 and above (and OpenGL ES 2.0 it seems).

Incredulous Monk
Thanks. Gels with my own impressions; fixed-pipeline is out, even though deprecation may not have really "worked". There are politics here with nVidia et al. that I don't understand.
James D