I’d like to quickly address an issue brought up in the December ARB meeting notes.
“Nick is concerned about slow atrophy of OpenGL developers / apps to DX.” [ Note, not this Nick ]
I’d just like to state my observations for why this is. For anyone else with similar observations or contradicting evidence, I’d like to encourage you reply. Lets see if we can get a useful discussion going that lets the ARB know a little more about what developers are thinking.
Lets put things about driver quality aside for this discussion, as those are endless persuits. Also, PLEASE lets not let this degrade into a flame war. If we’re going to learn anything from this, it needs to remain an honest discussion where people can say whats on their mind.
First, I’d like to say I’m really glad to see Septembers meeting notes - the ARB looks like its on the right track.
Now, without futher prolongment, here is what I’ve observed over the last seven years of working with OpenGL.
The availibility of a standarized (and well written) math, and image libraries have an incredible sway on developers. I fully understand why these have been left out of OpenGL, but they do often influence the decision of which API to use, especially among new developers. A lot of people claim that good libraries exist, but most of these are GPL’d, which keep many people away. Could glu be extended to offer some of these features?
There are a new set of common tasks since glu’s inception ( including the already mentioned, as well as things like generating TBN basis ) that could be covered.
While OpenGL has recently added Vertex Buffer Objects and a high-level shading language as an arb extension, these features have already been in Direct3D for some time, and have had a chance to develop. I saw a large number of people transition to D3D when HLSL was delivered.
Personally I would still like to see an OpenGL effect framework. I’ve asked about it here in the past, as something that could be added to glu. Having used the Direct3D effect framework, I often find myself wanting for something similar in OpenGL.
I often hear standard complaints about having to use extensions for everything in windows - but this is a well known issue, so I really don’t have much to say, except mention it. (Yes, there are good libraries to handle this - but again many people dislike having to deal with GPL or similar licencing.)
Direct3D handles backwards compatability in a totally different way than OpenGL. That is, syntax is allowed to be updated completely to reflect new and better ways of doing things, while culling redundant portions of the api. Developers get the sense that their api is more up-to-date because there is less clutter. The “if you dont need it dont use it” argument really doesn’t change the perception of things.
While OpenGL’s backwards compatablility is one of its strong features, it also leads to a “messy” api.
There are other things that belong halfway between the windowing system and the graphics library that are exposed in an “ugly” way. Things like setting up a pbuffer as a render-target could be added as a glu function (or perhaps some new library? )to totally abstract the platform dependency.
Anyway, I’m sure there are other issues that people have seen that are causing people to choose alternatives to OpenGL. At the same time, these things may attract some people to OpenGL. I’d like to point out that adding things to glu or a similar library doesn’t force people to use them - they’re not even core OpenGL - they just give people options.