Hi everyone,

I'm a little stuck on the specifics of OpenGL versioning. A bit of background...

I'm writing an application (using old-fashioned WinAPI) and I'm working on converting the graphics system to OpenGL. Originally, I did all the math on the CPU and used GDI+ for rendering, which worked fine until the polygon count of my tests started increasing. It proved to be far too slow when dealing with ~20,000 triangles.

Since I'm new to OpenGL, I started with the NeHe tutorials, which, as I later found, are quite outdated. So as of now, it's written in pretty basic OpenGL 1.1 fixed function pipeline. Not too much has been done, so conversion is not a big problem.

As I understand it, OpenGL up until version 2.1 (or perhaps 3.0, not counting the deprecations) is built in "layers"; you would only need the latest version that supported all your needs. However, 3.1 and after completely discard FFP, so I'm not sure where they fit in. Also, I've heard that some Intel integrated GPUs only support 1.5, but modern GPUs only emulate FFP... eh, I just don't know.

Now, what I'm asking is: Given that I only need the functionality of OpenGL 1.1 (it's nothing fancy, just a lot of brute force polys), would it be better for me to stay with the FFP, convert to OpenGL 2.1 shaders, or take a step further and discard all deprecated functionality in favor of OpenGL 3.1+ (in the interest of future-proofing)?

The program is a data visualization aid intended for academic/scientific research purposes, so ideally I'd like it to work on as many computers as possible, not just those that have the latest hardware.

Thanks for your time.