Will the Lack of DX10 on XP Spur OpenGL Dev? 168
Sparr0 asks: "Microsoft has announcement that DirectX 10 will not be released for Windows XP (which means no Shader Model 4.0 and no Geometry Shaders). I have since been waiting for news of game developers switching to OpenGL, in order to get the best graphics on the best hardware on the most popular gaming OS, however there is nary a whisper of such. Will such a shift occur, even if only in small amounts? When? Why not? It is probably safe to say that Unreal Tournament 3 (AKA UT2007) will have OpenGL as an option in Windows, but that is both unsurprising and also a long way off. Ditto for Quake Wars, and most other games that are planning a native Linux clients. Where are all of the other big names with Windows-only offerings? Why haven't we heard from Valve, Blizzard, Sony, or EA, to name a few?"
Re:How many times does it need to be said... (Score:3, Informative)
http://www.gamedev.net/reference/articles/article
http://www.xmission.com/~legalize/d3d-vs-opengl.h
Re: Will the Lack of DX10 on XP Spur OpenGL Dev? (Score:3, Informative)
Sheesh, a lot of titles shipping today still have DX 8 codepaths and look pretty damn good on DX 8 hardware.
Pass me that pipe you're smoking
Library choice not always exclusive (Score:2, Informative)
As far as input in the windows arena, that area is pretty much fully dominated by DirectX. Even ID Software, who do a lot of work using OpenGL are still using DirectX for DirectInput and DirectSound in win, even if they don't use D3D.
Re:No solution (Score:4, Informative)
Re:Nope. (Score:5, Informative)
DirectX info [wikipedia.org]
WDDM [wikipedia.org]
Re:How many times does it need to be said... (Score:5, Informative)
I've had experience using both API's and I can tell you that OpenGL is much easier to work with. But I can understand why companies would want to use Direct3d if they need to create a really effeicent graphics engine.
Re:How many times does it need to be said... (Score:5, Informative)
A major advantage of DirectX is programmable pixel and vertex shaders. The syntax has cleaned up considerably in the past two or three versions so it's now as easy or easier than OpenGL. Also, if you know DirectX it's nice because then you can use DirectInput and DirectSound which have a similar structure and use the COM model. As an API, it's pretty nice to develop in. Once you get it, I can see not wanting to migrate to OpenGL.
OpenGL is nice because it's portable and it's an open standard. It's also a little leaner then DirectX. With the newer extensions you have most of the functions that DirectX has, but are missing some key ones. It's also a little more obtuse and it's not updated very much anymore.
Both are stable if written right. Both are fast if written right.
This all being said, they are both very complex API's with lots of extensions (OpenGL) and updates (DirectX) so the differences are there and I've just touched on them. Overall the functionality is close but they just differ in the way they do things.
Games are moving to DirectX for a reason in my eyes. It is somewhat better.
Re:How many times does it need to be said... (Score:5, Informative)
One "good" part of OpenGL is that graphics companies don't need to wait for approval to include new features. They can release access to cutting edge features using vendor specific extensions. This was really important in the early days of consumer 3d graphics, and helped spur game development.
Of course this makes programming hard as the extensions are different between vendors and may even vary between different cards in a family (usually they try to just add on). This requires developers to create completely unique rendering paths for each card they want to support to get the best speed/features. Over time though Microsoft's Direct3D caught up with OpenGL and sort of sucked up all the good extensions into their API.
Direct3D 10's advantage is that it puts out a spec and requires all cards fully implement it. Unlike previous versions of DX you can't be DX 10 compatible and leave out features. This really helps eliminate the need for separate rendering paths to make any specific feature work, and so makes development much easier.
So the short of it is they can both do the same stuff, it's just more difficult at the moment with OpenGL.
(Another interesting thing to note is that I have heard rumors that once Direct3d came out Microsoft, who also happens to sit on the OpenGL ARB, slowed down the adoption of some features into the main OpenGL spec. This left them ramping Direct3D at a faster rate.)
Re:How many times does it need to be said... (Score:4, Informative)
DX is more than just a graphics library - its a framework for engine development.
OGL is only a graphics library - and it only lets you use the hardware you have (DX has quite a few handy emulation layers).
Unfortunately, OGL doesn't have the kind of supplemental stuff you'd really expect when prototyping or developing a game from scratch - i'm taking about as native format mesh loaders and converters (everything found in d3dx). Interestingly (and frustratingly), many of the d3dx routines aren't perfect and have their odd quirks. Some are plain not reliable, and most rarely return more than a null hDC when things do go wrong (this doesnt help debugging a mesh LOD reduction!)
OGL does support integer and float based indexing, whereas, afaik, DX only supports float.
Both support a wide range of colour formats - as expected.
Personally, the OGL viewports are easier to manipulate.
I find the continual loss of device in DX (through 'apparently' random context switching) annoying. You have to have a fairly large and complex recovery structure/path to commit states back to the gfx hardware.
I would say that OGL is consistent in its API naming, but as-is DX.
OGL is consistent in its interaction with GLSL (the pixel and vertex shader lanauge). I would also say DX is consistent with vertex and pixel shader manipulation too - except considering nVidia's quirky interaction between the sheets after compile (there's some kind of intermediate language and translation going on here, DX tends to break more than OGL - not something i've experienced myself tho).
If I was to code a game now, I would be happier using DX with D3DX, STL, and maybe some boost stuff rather than OGL, because I would have to code less of the engine - less loading/common manipulation routines - thanks to greater library support in DX...
Hths,
Matt
Console ports (Score:4, Informative)
Re:Blizzard... Owned by MS... (Score:2, Informative)
Re:How many times does it need to be said... (Score:3, Informative)
Both APIs allow you to use a high level language to write programmable vertex and fragment shaders (HLSL for Direct3D, GLSL for OpenGL).
Re:How many times does it need to be said... (Score:3, Informative)
I stopped reading there, as this is completely backwards.