Why does Direct3D still exist?

ShawnD1

Lifer
May 24, 2003
15,987
2
81
Why are so many games made with Direct3D instead of OpenGL?

For the games that support both, the users always choose OpenGL. Half-Life? OpenGL looks way better. Unreal Tournament? OpenGL is better.

People who have programmed with both usually say that OpenGL is easier to use.

Companies that make products designed to be Windows-only always choose OpenGL over Direct3D. Examples: AutoCAD, Microstation, SolidWorks, Maya.

Some video cards are specially made to support OpenGL. Examples: ATI FireGL, Nvidia Quadro, most Matrix cards.

OpenGL supports any OS. Using Direct3D cuts the market down to Windows users only.


With everything favouring OpenGL, why would a company choose to use Direct3D instead of OpenGL? The worst part is that using Direct3D cuts off any possibility of a port for Linux or Mac which means the game will be less popular. Games like BF1942 would probably sell at least 10% more copies if it was available for Mac and Linux as well.
Is there any valid reason for Direct3D to still exist?
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: ShawnD1
Why are so many games made with Direct3D instead of OpenGL?

Direct3D was designed from the ground up with gaming in mind. It also tends to have newer features earlier than OpenGL, and requires less mucking around with manufacturer-specific extensions for those features.

For the games that support both, the users always choose OpenGL. Half-Life? OpenGL looks way better. Unreal Tournament? OpenGL is better.

Um... both those games were written for OpenGL and only added Direct3D support later. They're not exactly great examples of this phenomenon.

People who have programmed with both usually say that OpenGL is easier to use.

The differences are not enormous. OpenGL is probably a bit more flexible, but Direct3D is more straightforward for gaming applications, especially if you want to use special features like pixel shaders (which require jumping through some hoops in OpenGL).

Companies that make products designed to be Windows-only always choose OpenGL over Direct3D. Examples: AutoCAD, Microstation, SolidWorks, Maya.

Direct3D is designed primarily for *gaming*. OpenGL is less focused, and so tends to be used for professional rendering applications (which all of these are).

Some video cards are specially made to support OpenGL. Examples: ATI FireGL, Nvidia Quadro, most Matrix cards.

These cards are made not to support OpenGL per se, but to support the sorts of applications you just listed. Since those applications use OpenGL (for their own reasons), the cards are designed around it as well. The more recent lines of FireGL and Quadro cards are actually *identical* to the "regular" graphics cards that ATI and NVIDIA produce; they just use custom BIOSes and/or drivers.

OpenGL supports any OS. Using Direct3D cuts the market down to Windows users only.

This is a good point, but for games, the vast majority of the market *is* Windows users.
 

gsellis

Diamond Member
Dec 4, 2003
6,061
0
0
To add (reading my notes from WinHEC), MS has committed to move to HLSL (High Level Shader Language) for Direct3D9. It has a C like syntax and no more assembler (yeah). It will be probably renamed the Windows Graphics Foundation, but D3D L9 is not all of WGF (a square is a rectangle, but not all rectangles are squares.) Next versions are going to have the scRGB color set (Longhorn, post Beta 1). Bigger gamut is fine by me (speaks the video editor), but that means I need to buy a new monitor. But hey, even the 6800 and X800 are not DX10 capable, so who cares. :) Rambling again, will crawl back into hole.
 

ShawnD1

Lifer
May 24, 2003
15,987
2
81
Originally posted by: Matthias99

For the games that support both, the users always choose OpenGL. Half-Life? OpenGL looks way better. Unreal Tournament? OpenGL is better.

Um... both those games were written for OpenGL and only added Direct3D support later. They're not exactly great examples of this phenomenon.

UT wasn't made for OpenGL. In the install process, when you get to video modes, OpenGL is listed under experimental.


Thanks for the link to that comparisson. Some nice info there.
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Maybe I'm confusing it with a different game, but didn't it start with GLide, *then* added OpenGL support, THEN added Direct3D?
 

jiffylube1024

Diamond Member
Feb 17, 2002
7,430
0
71
I'm not familiar with how OGL extensions work exactly, and I have heard that you can get new DX features in OpenGL, however,

DirectX is the current de-facto industry standard. When new video cards are designed, they are designed to accomodate the new features to be released in future DirectX Versions.

Nvidia is the one that truly started this with the TNT cards as a fully DX6 (or 7, I forget) compatible card.

They later continued the trend with the GeForce 3 series, which was in silicon the embodyment of DirectX 8.0 .

ATI then took the torch from Nvidia and made the Radeon 8500, a DX 8.1 compatible card, and then continued the history of strict DX compliance with the Radeon 9700 and DirectX 9.

Nvidia has once again taken the torch of cutting-edge DX features with the GeForce FX 6800 and DX 9c.
 

ShawnD1

Lifer
May 24, 2003
15,987
2
81
Originally posted by: Matthias99
Maybe I'm confusing it with a different game, but didn't it start with GLide, *then* added OpenGL support, THEN added Direct3D?

What you just described is Quake1.
 

CU

Platinum Member
Aug 14, 2000
2,415
51
91
The unreal engine did start as glide then opengl and finally D3D. Not a single Quake has been D3D.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Originally posted by: ShawnD1
Originally posted by: Matthias99
Maybe I'm confusing it with a different game, but didn't it start with GLide, *then* added OpenGL support, THEN added Direct3D?
What you just described is Quake1.
AFAIK, Quake never got official Direct3D support.
 

cKGunslinger

Lifer
Nov 29, 1999
16,408
57
91
1) Quake has always been Software / OpenGL rendered, never D3D or Glide.
2) Unreal was originally Software / Glide, with D3D and OpenGL renderers added later.
3) Be careful not to *over* estimate the number of Linux/Mac gamers. I guarantee that many companies 'run the numbers' and can make valid reasons why catering to the fringe OS crowd provides no financial benefits.
4) Many games may use D3D because they are already using the other DirectX features (input, sound, etc) for their games, so why not? OpenGL is *just* 2D/3D graphics, whereas DirectX is a *lot* more than that.
5) I wouldn't be surprised if developers weren't getting some sort of kick-back for using DirectX. MS has developed it heavily and has a lot to gain by having popular software rely on thier proprietary APIs.
 

skace

Lifer
Jan 23, 2001
14,488
7
81
Isn't Doom3 going to be OpenGL? I'd love to know why Carmack always picks OpenGL, but he always writes an awesome engine that runs very well on a multitude of cards. A lot of recent games havn't been OpenGL and have also run like crap.

Maybe it is just my experience, but I like OpenGL and wish more developers used it.

As far as D3DQuake goes, if you are going to include open source projects, better include fuhquake and tenebrae :D. (Edit: I mean include in comparison to how they look btw)
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Originally posted by: skace
Isn't Doom3 going to be OpenGL? I'd love to know why Carmack always picks OpenGL, but he always writes an awesome engine that runs very well on a multitude of cards. A lot of recent games havn't been OpenGL and have also run like crap.

Maybe it is just my experience, but I like OpenGL and wish more developers used it.

As far as D3DQuake goes, if you are going to include open source projects, better include fuhquake and tenebrae :D. (Edit: I mean include in comparison to how they look btw)
DOes anybody really know why Carmack uses OpenGL? There's no doubt him and his minions can make engines like nobody else, and keep OpenGL alive in gaming.

DirectX has the benefit of being a lot more than a 3D graphics API, and 98%+ of gamers run a windows variant. It will likely be financially viable for M$ to develop DirectX for *n*xes before it will be overwhelmingly beneficial for game developers to do so.
 

Schadenfroh

Elite Member
Mar 8, 2003
38,416
4
0
Originally posted by: jiffylube1024
Nvidia is the one that truly started this with the TNT cards as a fully DX6 (or 7, I forget) compatible card.
X 9c.

nvidia
TNT2 = DX6
Geforce256 - geforce2 and geforce4MX = DX7
Geforce3 = DX8
Geforce4TI=DX8.1
5200 - 5900 = DX9
6800 = DX9C

ati
Rage pro = DX6
radeon 256 - radeon 7500 = DX7
Radeon 8500 - 9200 = DX8.1
9500 - X800 = DX9
 

Schadenfroh

Elite Member
Mar 8, 2003
38,416
4
0
Originally posted by: ShawnD1
Originally posted by: Matthias99
Maybe I'm confusing it with a different game, but didn't it start with GLide, *then* added OpenGL support, THEN added Direct3D?

What you just described is Quake1.

no, matthias is correct,

quake1 = Rredline (API created by rendition, but rendition went up sh!t creek), it was converted over to OpenGL and john has stuck with it ever since, i think he does not like proprietary APIs
 
Apr 25, 2004
58
0
0
Nvidia, created the GPU with the gefore 1 in a joint venture between themselves and SGI. The GPU's were specifically designed for OpenGL; Not many people know this.
 

SickBeast

Lifer
Jul 21, 2000
14,377
19
81
Originally posted by: skace
I'd love to know why Carmack always picks OpenGL, but he always writes an awesome engine that runs very well on a multitude of cards.

You would have to ask him personally, but I would assume it is because of the following:

1. His engines are the foundation for countless games. Going with OpenGL opens up the possibility of releasing games on just about any platform.

2. He is much more familiar in OpenGL than he is in Direct3D. Everything he has done since Quake I has been OpenGL. Hell, I'm sure he could write a master's thesis on OpenGL and lecture students on how to program for it. ;)

3. He *may* have moral issues against going with a proprietary API that is controlled by a monopoly.
 

Falloutboy

Diamond Member
Jan 2, 2003
5,916
0
76
Originally posted by: Cerb
Originally posted by: skace
Isn't Doom3 going to be OpenGL? I'd love to know why Carmack always picks OpenGL, but he always writes an awesome engine that runs very well on a multitude of cards. A lot of recent games havn't been OpenGL and have also run like crap.

Maybe it is just my experience, but I like OpenGL and wish more developers used it.

As far as D3DQuake goes, if you are going to include open source projects, better include fuhquake and tenebrae :D. (Edit: I mean include in comparison to how they look btw)
DOes anybody really know why Carmack uses OpenGL? There's no doubt him and his minions can make engines like nobody else, and keep OpenGL alive in gaming.

DirectX has the benefit of being a lot more than a 3D graphics API, and 98%+ of gamers run a windows variant. It will likely be financially viable for M$ to develop DirectX for *n*xes before it will be overwhelmingly beneficial for game developers to do so.

I think he uses opengl for a few reasons

1. so he can port his engine to linux and mac with little difficulty
2. he's carmak he does what he wants
3. see 2
 
Apr 25, 2004
58
0
0
In principle OpenGL is better than D3D, since it's an industry standard. Also the openGL cards, such as a fireGL, Quadro, etc run OpenGL about twice as fast as a gaming card, since it has better driver capability.
 

Schadenfroh

Elite Member
Mar 8, 2003
38,416
4
0
Originally posted by: TheCadMan
In principle OpenGL is better than D3D, since it's an industry standard. Also the openGL cards, such as a fireGL, Quadro, etc run OpenGL about twice as fast as a gaming card, since it has better driver capability.

better in OpenGL games than their Geforce equivalents? is it the drivers that improve the OpenGL or the hardware?
 
Apr 25, 2004
58
0
0
Run Spec viewperf7.1 using your current gaming card and the compare that with its quadro counterpart. It's all in the drivers expect for a few hardware features not utilized in gaming. I'm not exactly sure if OpenGL runs better in games on a quadro or FireGL, when I get Doom3 I will report back.