With the SIGGRAPH OpenGL BOF now past, Nick Haemel from AMD has written a blog post about OpenGL 3 and the reasoning behind the choices made. “After testing an approach that would have a drastic effect on the API, requiring complete OpenGL application rewrites and not introducing any of the long awaited features modern GPUs are capable of […] GL 3.0 takes two important steps to moving open standard graphics forward in a major way. The first is to provide core and ARB extension access to the new capabilities of hardware. The second is to create a roadmap that allows developers to see what parts of core specifications will be going away in the future, also providing the OpenGL ARB with a way to introduce new features faster.”
I must confess that I am a DirectX “fan” but having said that I am also an OpenGL “fan”.
I am not sure (since I am not a developer) if OpenGL is comparable to DirectX, but for me there’s something nostalgic about OpenGL.
It brings back many fond memories.
And, if it opens up Linux to high end graphics functionality then that’s a good thing too.
while a great step in the right direction many developers were hoping for more and were unsatisfied with 3.0. 3.1 should be the update we were hoping for but 3.0 is a good stepping stone to getting there.
more information can be found here http://www.theregister.co.uk/2008/08/13/opengl_firestorm/
Nice article. (The link). If they cannot deliver the improvements (3.1) I wonder what impact that really would have on the current game developers/development?
Existing games / engines based on the older specs would probably just continue that way for awhile… they would end up eventually having to move to a different base, and by that time 3.1 would possibly be ready anyway.
But it might leave a bad enough taste in the mouths of developers that they abandon it.
Naw! Who am I kidding. That would not happen.
is OpenGL break the deathgrip that DirectX has on the gaming community. Frankly I think its bullshit that one has to upgrade to Vista to be able to enjoy DX 10 based games. Sure theres not much benefit to DX10 right now but in the next few years more and more games will be written with that in mind and then gamers like me will have to upgrade to Vista and pay Microsoft a few hundred for that privilege. I can see and understand Microsoft’s POV but I for one don’t like it one bit.
OpenGL works pretty much on both *nix based OSes and as well as the *doze based OSes. I dont see why more game developers dont embrace that as their main development platform. I believe other than the Xbox the PS3, and the Wii possibly are compatible with OpengL?
OpenGL was never focused on games. It was all about professional graphics such as CAD. That it could be used for games should be considered a bonus.
But make no mistake. If linux (or any other non windows OS) wants to be a viable game platform, it needs to come up with its own game solution to compete with directx and not depend on Khronos design by committee.
Yet another Linux-only library like the sound libraries that no other OS in existence will ever support?
How did that work for the people who tried to get rid of X? Are DirectFB and GGI doing well these days?
It’s not a good plan. As it is, by using OpenGL developers can at least target Linux and MacOS X at the same time.
If you just can’t stand OpenGL, then a native DirectX port (using Wine code but not run in Wine) would be a much better idea than a completely new system.
the problem is that developers will simply forget about opengl -and any hope for mac/linux ports- and just sign the deal with the devil and use directx.
Directx on wine may be an option but I think it’s a bad idea to be dependent on Microsoft technology. You’ll always be a step behind the curve.
The problem with that viewpoint is that DirectX covers significantly more than OpenGL does. OpenGL just covers the graphics side of things whereas DirectX is a complete toolkit covering graphics as well as sound, networking, input and everything else needed with consistent APIs. OpenGL on its own is simply not comparable.
Actually, the latest versions of DirectX are getting closer to a 3D-only API. Many DirectX parts have been deprecated (DirectDraw, DirectPlay) while others are getting replaced (DirectSound by XACT, DirectInput by the Windows message loop/XInput).
The only subsystem that really got attention since DirectX 8 is Direct3D. I wouldn’t be surprised if it’s the only subsystem left in future revisions (unless you use the old interfaces).
On OpenGL not being equivalent to DirectX…
I’m kind of sick of this fallacy.
Historically, DirectX contained a number of components:
DirectDraw – Deprecated in DirectX 8. Irrelevant for modern software.
DirectSound – Deprecated as of Windows Vista, but the only useful way to access the sound hardware. Hardly anyone used this directly anyway – they either used a third-party library, or DirectSound 3D.
DirectSound 3D – Deprecated as of Windows Vista. Can’t use hardware acceleration, so it’s no better than a third-party library. Most third-party libraries have far better functionality, and are much easier to use. Developers have started moving to those, or to OpenAL.
DirectMusic – Basically a MIDI softsynth, used in half a dozen games ever. Deprecated in DirectX 8.
DirectInput – Provides mouse and keyboard input that nobody ever uses. The only useful way to access joysticks until XInput. Deprecated in favour of XInput, which only works with Xbox 360 controllers.
DirectPlay – All it really did was allow the game to work over serial cables and modems. Didn’t provide any other useful functionality, but caused lots of problems. Developers stopped using it once they went TCP/IP only.
Direct3D – Still actively supported.
The only APIs still in use are Direct3D, DirectInput, and DirectSound. None of the rest are relevant, and even DirectSound tends to be used through third-party libraries.
So what, exactly, is supposed to be missing from the OpenGL + some other libraries stack that’s present in DirectX?
Yah…
The PS3 can use OpenGl ES which is the embedded system version of ogl and as a result has a cleaner and simpler api . Shaders, however, are written in Cg (which is nvidia’s c for graphics). This means that it doesn’t use glsl for shaders.
Dunno about the wii, but seeing as the gamecube could use it (and the wii is just an upgrade) I imagine it is also the case…
Edited 2008-08-18 23:18 UTC
The biggest problem with opengl is that due to retaining a ton of unnecesary “old” functionality, it is more difficult to write for, and it really is a very confusing api with a ton of not well defined corner cases. At least if you aim for modern hardware. It can be used, but developers nowadays and specially new ones really wish for something much simpler..
That’s why depecration is there for OpenGL 3.0 and in OpenGL 3.1 they will be removed.
Deprecation doesn’t mean that obsolete features are automatically going away in the next version. They might be removed from 3.1, but they are likely to stay around for a while. If it’s like Java, .NET or most major APIs, they will stay around forever.
OpenGL 2.0 and 3.0 haven’t delivered the long-awaited API overhaul, so I don’t expect to see it in a minor revision (3.1). I don’t expect Intel’s or AMD’s OpenGL drivers to get better, either…
Shoot the maintainers, not the messenger who is taken their statements, on other news briefs, at face value. They have been adament that the Object Model will make it into 3.1 and the deprecated APis in 3.0 will be removed.
They’ve added extensions to 2.2 to address those who will be remaining on the 2.x branch until their companies/organizations get the green light to deprecate their own code base and do the forward designed rewrite.
This is given them a line in the sand and definitely fair warning.
Well, I trust the goodwill of the messenger, but I don’t have any faith in the message. Using an object model is a major paradigm shift that would warrant a major revision number. Given that 3.1 is a minor increment, I just expect 3.1 to be a minor update too. To what I understand, the original plans for 3.0 were vetoed by some members. I just don’t expect them to change their mind in six months! The current situation wouldn’t be that bad if we could exploit the EXT_direct_state_access extension, but AMD doesn’t seem interested in it. Unfortunately, supporting more than one rendering paths is not an option for most developers.
To be honest, I don’t really blame the Khronos Group. It’s not easy to find a consensus when their members have different needs and interests. Microsoft holds the future of DirectX in their hands, so they can push it wherever they want. However, Khronos should give more importance to the opinion of developers, because they are the ones that ultimately use their API.
Good stuff.
I always like OpenGL graphics for some reason… I find them smoother… But that’s just my opinion.
Perhaps OpenGL 3.0 will invite developers to let go the Vista only DirectX 10 to get the most markets share (Windows, Mac and Linux)
Not sure about this. This new release might look promising from an user’s POV, but it’s still the same 15-years-old state-driven API for the developers. The majority of the features introduced in 3.0 were already available as extensions for quite a while. Hey, it’s still behind the Direct3D 10 API in terms of features even though the latter came out almost two years ago!
I had great expectations for this new version, as it was looking to be a major overhaul at the beginning of the year. Unfortunately, the Khronos Group choked for some reason and we’re left with something that should have been tagged “2.2” or “1.8”. I will probably stick with OpenGL because I care about portability, but I don’t know for how long. Things are looking quite grim when people are just sticking around because of a lack of alternatives.
…. but OpenGL is doomed to irrelevance. OK. I’m going overboard there, but this revision is nothing but OpenGL 2.1.
Those that hoped for some real DirectX competition will be bitterly disappointed. This failure to actually IMPROVE OpenGL in any meaningful way will just further intrench DirectX’s dominance. I wouldn’t be suprised if you see DirectX only compatable cards in the future.
Sorry to break it to you:
DirectX’s “dominance” only exists in the PC gaming market, which is relatively small compared to other markets, such as CAD — where OpenGL dominates by far. It’s not going anywhere.
Yup. And besides that DirectX has also had quite lousy security record.
But I guess it is up to your personal needs and preferences: toys may be just perfect for kids playing games; but professional level tools, stability and security for real work..??
And yet another thing, DirectX is not cross-platform but basically for MS Windows only.
Since it was originally the WinG library, developed by Microsoft, yes.
Just a nitpick from Wikipedia:
“The first version of DirectX released was shipped September 1995 as the Windows Games SDK. It was the Win32 replacement for the DCI and WinG APIs for Windows 3.1. A development team at ATI brought fundamental game graphics technology to the attention of Microsoft.”
It wasn’t so much originally the WinG library as much as it was a replacement for it.
The OpenGL API doesn’t bring any of them. Many professional tools are using it because it was the only choice when they were created. Furthermore, stability and security are mostly dependant on the driver provided by the hardware vendor
Meanwhile, the “toys” are driving the innovations in the graphics market. Without them, I doubt we would have modern features like shaders, which are even getting used by professionals (GPGPU).
Well, I just gave the earlier troll commentator a reply in a bit same tone like his own comment… Both OpenGL and DirectX obviously have their pros and cons. But it is nevertheless a clear fact that OpenGL is still used much more in professional development, and not only for historical reasons. See, for example: http://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Direct3D#Prof…
Like a gay told me a month ago: “I noted you haven’t coded for 20000 diferent PCs”. I do little programs using (for now) OpenGL.
Ehh.. What do you mean?
Yes, OpenGL is cross-platform (while DirectX is not). Just check Wikipedia, for example:
http://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Direct3D