OpenGL was an essential part of 3D gaming in the 1990s when Direct3D lacked advanced features and GLide only worked on 3dfx cards, but Direct3D is now reigning supreme in the world of PC graphics APIs. Is there still room for an open-standard API such as OpenGL in PC gaming? The Khronos Group certainly thinks so – it’s just released the spec for OpenGL 3.1, less than a year after it unveiled OpenGL 3.0.
The new APU includes GLSL (graphics library shading language) 1.40, which The Kronos Group claims will enable “enhanced access to the latest generation of programmable graphics hardware through improved programmability, more efficient vertex processing, expanded texturing functionality and increased buffer management flexibility.”
The other major feature with this release is the removal of some legacy features from OpenGL’s distant past. OpenGL 3.0 still included all the legacy features, but flagged some of them as “deprecated” in order to give developers a warning before they were deleted in OpenGL 3.1. The Khronos Group says that its work here was intended to “dramatically streamline the API for simpler and more efficient software development.”
However, this doesn’t mean that users of OpenGL 3.1 will not be able to access legacy features; it just means that they’re not a part of the standard API. There will also be an “optional compatibility extension”
that provides access to the OpenGL 1 and 2 features removes in OpenGL 3.1.
A number of new features have also been introduced with the new API, including a CopyBuffer API, which Khronos says will be useful for apps that share buffers with OpenCL. There’s also an Instancing feature for drawing objects several times by re-using vertex data. The full spec is available here
The Khronos Group claimed that OpenGL 3.0 had a "rough feature parity"
with Direct3D 10 with its support for Shader Model 4.0, including the Geometry Shader. However, a potential advantage of Open GL 3.0 here was that it could bring these features to other operating systems, including Windows XP and Linux, which are currently closed to Direct3D 10.
Barthold Lichtenbelt, chair of the OpenGL ARB working group at Khronos, said that “OpenGL 3.1 answers the requests from the developer community to streamline and modernize the OpenGL API. The OpenGL ARB will continue to leverage the unique evolutionary model introduced in OpenGL 3.0 to drive the ongoing revolution in OpenGL while ensuring backwards compatibility where it is needed.”
Having to sift through the legacy code in OpenGL 3.0 was a common complaint among developers, and it’s hoped that the new streamlined API will persuade more game developers to use OpenGL. AMD, Nvidia and S3 are already supporting OpenGL 3.0 in their drivers, and Nvidia has already released an OpenGL 3.1 driver for developers, which can be downloaded from here
. Meanwhile, AMD’s director of OpenGL, Suki Samra, said that “AMD will support OpenGL 3.1 in the upcoming driver release for the Radeon and FirePro products, and is fully supportive of the OpenGL API.”
Of course, the big issue for OpenGL now is getting game support. Is there still room for OpenGL in 3D graphics development if The Khronos Group gets the spec right? Let us know your thoughts in the forums