The OpenGL Roadmap - The hows and whys
I have seen many concerns, questions, comments, etc on the progress of OpenGL over the last few years. Some are positive, some not. But what really seems to be lacking is a clarity on the how and why.
First, OpenGL is a public and open specification that is available for all to read and program for. It is written by a consortium of companies and individuals within the Khronos Group who have an interest in 3D graphics. Generally speaking, considerable time and effort is volunteered by these groups to help promote open 3D graphics specification. Modern OpenGL specifications are not the creation of one company or individual. OpenGL is intended to work on a considerable selection of platforms, making code very portable between operating systems. OpenGL is intended to work on many levels of hardware, allowing the same application to run on various graphics chips. I'd argue OpenGL related specs (OpenGL ES/SC/etc) are some of the most portable APIs for 3D graphics.
So how exactly does an OpenGL specification get written? The ARB looks at hardware capabilities and corresponding OpenGL extensions to determine candidates for inclusion in a future version. Input on feature candidates is gathered from industry players and individuals. Features are then prioritized by general usefulness and future compatibility, and then added to the core language. Simplified, a new feature goes from Idea --> Vendor/ARB Extension --> Core OpenGL Specification, assuming hardware is capable.
Why use this process? One reason is that extensions provide an efficient proof-of-concept. The idea has been tried. Its weaknesses and strengths are known and can be addressed as the extension is promoted to core. Another reason is that free-form design by committee is cumbersome and error prone at best. The side-effect of this process is that the core specification may lag behind some hardware and vendor extensions. But the final core specification is more stable and predictable.
A really common question I have seen is "I see feature XYZ in the DX spec, why isn't it in OpenGL?" There are several reasons. First and most importantly, OpenGL is a unique, separate, and independent specification. It does not, and should not follow any other API. Second, OpenGL makes decisions that are in the best interest of the industry, not of one company.
How can you help?
Given that new OpenGL features are likely to come from extensions, contact IHVs and Khronos members with constructive feedback of what you need and what types of features you think will be helpful. Use vendor specification extensions, let us know which ones are most helpful and would make good candidates for core features. OpenGL is our 3D graphics API. We can work together to make it the best API for the future of graphics.
Khronos ARB frequent contributors (AMD, Apple, ARM, Blizzard, IBM, Intel, Imagination Technologies, Nokia, NVIDIA, Transgaming, many others)