Thursday, August 14, 2008

Why the F.U.D. against OpenGL 3.0?

One of the big announcements at this years SIGGRAPH was the release of the OpenGL 3.0 specification. OpenGL is the definitive open-standard Application Interface for graphics in the computing industry, and is supported on hardware platforms ranging from the cellphone sector to the high end gaming console. I've talked about OpenGL quite a bit before on this blog alone, as 12 different previous articles mention the API.

One of my favorite points about OpenGL is that it's rapidly becoming the only graphics API available to game developers and publishers pushing multi-platform content. I went over this point in detail on an article clarifying why the DirectX API was a multi-million dollar mistake.

So, it was with some interest to read on TheRegister and Slashdot that the release of OpenGL 3.0 was met with heavy resistance by existing developers. Strangely, Wikipedia user Paeator Alpha's post seemed to be the most balanced immediate report on OpenGL 3.0, and lets face it, Wikipedia isn't known for being accurate.

It was even stranger to read then from one of the developers actually attending SIGGRAPH that the backlash reported by Slashdot and TheReg, just wasn't happening.
The OpenGL BoF went really well, I think. Nobody showed up with torches or pitchforks. Of course, the free beer may have helped. The most useful part of it for me was the mingling period after all the presentations. I talked with quite a few people and, contrary to the /. reports, nobody was furious. Whew!
So... why the F.U.D. I think the answer is actually simple, and relates to the reason why DirectX is becoming deprecated. Many vendors, such as EA, Valve Software, and Activision/Blizzard are having to learn OpenGL development. From what I've heard from WiiWare developers, that's also using the OpenGL API.

There are a lot more people involved in OpenGL than ever before. It's the same problem KDE has with 4.0, as looked at by Linux.com's Bruce Byfield. KDE 4.0 was stuck in a bad position between both distributions and development. It wasn't final desktop ready code. It was simply the underlying basis to make a desktop enviroment. That didn't stop many distributions for packaging KDE 4.0 and releasing it as a ready to deliver desktop enviroment. End users suffered as a result. Many distributions made no effort to clarify that KDE 4.0 was simply the library and API completion, which had to be completed before applications themselves could be completed.

As Phoronix turned around and pointed out, it's going to be a while before OpenGL 3.0 is actually in drivers. At best, Intel, AMD, and Nvidia probably won't be delivering OpenGL 3.0 support until the end of the year. Okay, that's 4 months away. Then consider that Khronos is planning a release called Longs Peak Reloaded, which will basically be OpenGL 3.1, and then another release called Mt. Evans is timelined in about 5 months, or early next year.

So, what Khronos has done is put the hardware vendors and driver developers on notice. It's given them the basic underlying specification that allows the likes of Intel, AMD, and Nvidia to go ahead and start work on OpenGL 3.0 drivers.

In other words, Khronos has done the same thing that KDE did. They've gotten the basics settled, and are given the end developers time to start building against the new API.

So, Khronos has run into the exact same problem KDE ran into. A lot of people are simply armchair analysts with no actual graphics experience. That's why the actual developers at SIGGRAPH responded so differently than the reports from TheReg and SlashDot would have people believe.

In the long run it is encouraging that OpenGL is pulling much more interest than before. However, like the KDE Foundation, Khronos have to deal with people who don't know what they are talking about assuming positions of authority.

I hope that answers why the release of OpenGL 3.0 was marked by F.U.D.



1 comment:

Nicol Bolas said...

There are so many inaccuracies in that article, I don't know where to begin.

First, let's start with consoles. Wii is a GameCube (yes it is, I've seen it's API). And the GameCube does not use OpenGL. It never did. Wii does not use OpenGL. What it uses is an OpenGL-like API that's tones better than the actual OpenGL.

PS3 does have an OpenGL ES implementation. Which is not, in fact, OpenGL proper; it is an offshoot, much like the GC/Wii graphics API. Also, nobody uses it; they prefer using the lower-level interface.

As for "Longs Peak Reloaded" and "Mt. Evans," those are dead. They died with Longs Peak, when the ARB decided to not revamp the API. 3.1 will be something, but it will not be what Reloaded was going to be, just like 3.0 was not what Longs Peak was going to be.

And your article on why "DirectX API was a multi-million dollar mistake?" Total nonsense.