It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
F4LL0UT: I think the question is rather why games use Direct3D at all (unless they are Xbox games). It is indeed a valid question why say a game available for Windows, Linux, Android and maybe PS3/4 uses Direct3D on Windows rather than OpenGL. And Windows games, even Windows versions of cross-platform games, actually do almost always run on Direct3D rather than OpenGL.
I think that it all comes from Microsoft being a driving force for 3D feature parity on PC. It strives for a common feature set and makes Direct3D a common interface for it. As a result at most points of time Direct3D is ahead of OpenGL feature-wise. Microsoft also tries to force more driver compatibility. Microsoft also provides developers with support, while there's no central authority to provide OpenGL help.

As for cross platform, my understanding based on a bit of googling is that the PS4 doesn't use OpenGL, the PS3 uses OpenGL ES 2, which is the mobile version of OpenGL and doesn't have the exact same features and interface as OpenGL. So basically if someone is developing for the XBox One, PS4 and PC (or any other combination of platforms) they are using a different API for each anyway, so there's zero benefit for using OpenGL over DirectX.
avatar
amadren: Valve told on 2012 that OpenGL was faster than DirectX even on Windows.
Yeah, that was quite a silly comparison. Gave a lot of people things to talk about even though there was little meat there.
Post edited July 05, 2015 by ET3D
Isn't it largely a historical thing as well; I remember that in the early days, most cards didn't have native support for OpenGL - you had to use a miniGL driver (which was a massive pain).

DirectX became the easiest medium to ensure support for "other" manufacturers (e.g. you would have best support for glide, then have DirectX support for people without 3dfx cards)
avatar
ET3D: As for cross platform, my understanding based on a bit of googling is that the PS4 doesn't use OpenGL, the PS3 uses OpenGL ES 2, which is the mobile version of OpenGL and doesn't have the exact same features and interface as OpenGL.
Ah indeed. I was not aware of that. The question whether Direct3D or OpenGL is the better choice for Windows games is still valid, though, considering how both AMD and Nvidia have been openly supporting its use more recently. I haven't watched that presentation yet (and I probably won't understand much of it anyway) but if the overhead can indeed be reduced as much as they suggest it could indeed be a viable choice, at least for AAA games which can afford all the extra effort.
Post edited July 05, 2015 by F4LL0UT
KEK!
avatar
amadren: I've seen on many reviews and website that OpenGL was faster, better looking and cross compatible. So why everyone keep using DirectX if OpenGL> DirectX?
That incorrect argument is usually put forward by Linux users who are jealous of Windows gaming.
The fact is that DirectX and OpenGL are very similar and go up and down slightly over the years.
However, OGL's answer to DirectX12 is not quite as good in the multithreading department.

As a user you can't just swap one out for another, it has to be done by the developers.
avatar
Primo_Victoria: DirectX12 and Vulkan? Ok.
avatar
Shadowstalker16: Nitrous Engine > all
Game Engine != Graphics API
Post edited July 05, 2015 by ziplock9000
avatar
Ganni1987: If I remember correctly developers find it easier to develop on D3D than OpenGL, exactly how I don't know but there was some article I read a few months ago.

With Vulkan around the corner OpenGL might come back into the game and devs would have a solid cross platform API to build on, although not going to be easy with DX12 in competition.
^ this very well said & accurate info. they will coexist. so from what i understand vulkan is an improved opengl api?
avatar
F4LL0UT: The question whether Direct3D or OpenGL is the better choice for Windows games is still valid, though, considering how both AMD and Nvidia have been openly supporting its use more recently.
I agree that it's a good question, but I don't think that AMD or NVIDIA has really been pushing OpenGL. I attended GDC a couple of times, and there were always talks about getting the most from OpenGL, but same for Direct3D. NVIDIA also advertised how they managed to improve performance in their Direct3D drivers.

OpenGL's biggest benefit is that it's cross platform, but I don't think that's enough of an advantage. I think that the bottom line is mostly that DX tends to be the first with features. Developers wanting lower level rendering access could use Mantle and then DX12 before they could use Vulkan, so they already had DX12 support programmed.

That said, it's possible that Vulkan could shift the scales, because it should be the same for all platforms, no longer separate PC and mobile OpenGL versions.
avatar
amadren: I've seen on many reviews and website that OpenGL was faster, better looking and cross compatible. So why everyone keep using DirectX if OpenGL> DirectX?
avatar
ziplock9000: That incorrect argument is usually put forward by Linux users who are jealous of Windows gaming.
The fact is that DirectX and OpenGL are very similar and go up and down slightly over the years.
However, OGL's answer to DirectX12 is not quite as good in the multithreading department.

As a user you can't just swap one out for another, it has to be done by the developers.
I know that we can't swap :p And in that case, the OpenGL >DirectX has been seen in many forums (I did a lot of research yesterday :p), blog and wbsite that weren't necesarily pro linux. They were also told by the manufacturers themselves :/
OpenGL and DirectX are basically Application Programming Interfaces. Their goal is to create functions that game programmers (or engine designers) can call to render their creations in a hardware agnostic manner.

DirectX took the approach of making 'contract' like function calls, whereas OpenGL is a bit more open and works on multiple platforms, even including Windows.

However, the API does have to change on both fronts when video card manufacturers add new functionality or features. While the underpinning graphics API changes to adapt, a game which uses that API doesn't need to change in order to gain those extra features or functionality.

So, both OpenGL and DirectX are backward compatible, while newer games target forward functionality and will not work with older OpenGL and DirectX drivers, the idea is that your "Good Old Games" will still work.
avatar
amadren: I've seen on many reviews and website that OpenGL was faster, better looking and cross compatible. So why everyone keep using DirectX if OpenGL> DirectX?
avatar
ET3D: I'd ask two questions:

Firstly, who is this "everyone" that uses DirectX? Cross platform engines such as Unity and Unreal Engine support both Direct3D and OpenGL.

Secondly, the sites you read that on, did they perhaps have an anti-Windows leaning?

In my experience, which granted isn't that recent when it comes to Direct3D, Direct3D tended to be more stable and OpenGL lagged in terms of features. It also was better documented and had a fuller development ecosystem (math libraries, debugging utilities, ...) which in OpenGL are external, so it was easier to start doing real stuff with Direct3D.
OpenGL was just graphics and DIrectX had features for sound, controllers and other things.

But, the main reason that people use DirectX is that MS pushed it hard and used the size of their company to damage OpenGL. At this point, OpenGL can be outright broken on some chipsets as the developers couldn't be bothered to check it at times.

There's no way that developers would have accepted DirectX when it was first introduced without MS pushing it hard.
avatar
hedwards: But, the main reason that people use DirectX is that MS pushed it hard and used the size of their company to damage OpenGL.
I don't think Microsoft tried to damage OpenGL. Sure, it didn't try to actively help it (although it did participate in the forum), it left the full burden of driver writing to the IHV's, but I don't equate that to actively trying to damage it. When Direct3D appeared, it offered a simple API, while OpenGL was a complex API with tons of features that the consumer grade chips of the time couldn't perform. Implementing a full OpenGL driver for these chips was quite a task, and much easier for Direct3D, which is why there were "mini GL" implementations tailored for Quake, but they weren't generally usable, unlike D3D.

With time chips improved and got more features, and full OpenGL stacks became viable, but they still were often crappy. Then shaders came, and Direct3D got the jump on OpenGL, which only offered them as IHV specific extensions. OpenGL stayed behind in terms of features for many years.

The reason Direct3D won was simply that it was better. It was simpler when it needed to be and offered more features when it could.
avatar
hedwards: But, the main reason that people use DirectX is that MS pushed it hard and used the size of their company to damage OpenGL.
avatar
ET3D: I don't think Microsoft tried to damage OpenGL. Sure, it didn't try to actively help it (although it did participate in the forum), it left the full burden of driver writing to the IHV's, but I don't equate that to actively trying to damage it. When Direct3D appeared, it offered a simple API, while OpenGL was a complex API with tons of features that the consumer grade chips of the time couldn't perform. Implementing a full OpenGL driver for these chips was quite a task, and much easier for Direct3D, which is why there were "mini GL" implementations tailored for Quake, but they weren't generally usable, unlike D3D.

With time chips improved and got more features, and full OpenGL stacks became viable, but they still were often crappy. Then shaders came, and Direct3D got the jump on OpenGL, which only offered them as IHV specific extensions. OpenGL stayed behind in terms of features for many years.

The reason Direct3D won was simply that it was better. It was simpler when it needed to be and offered more features when it could.
I'm not convinced. DirectX is Windows only or now Windows and XBox only, the only reason that MS created it was to make it more challenging for developers to also support Apple computers.

I'm not going to debate whether or not OpenGL is more complicated, but the fact is that it's the only real option for cross platform gaming and it's been around for a much longer time than DirectX. If MS didn't have a well established reputation for deliberately disrupting other people's work and using that to prop up their crappy software, I'd be more inclined to grant them the benefit of the doubt here.

But, bad behavior does earn a certain amount of suspicion. Remember that DirectX was released about the time that MS was deliberately breaking the Internet for personal gain.
LOL, this is getting better with every post.
avatar
hedwards: I'm not convinced. DirectX is Windows only or now Windows and XBox only, the only reason that MS created it was to make it more challenging for developers to also support Apple computers.
Your argument certainly isn't convincing me. You make it sound like 'Windows' is some piece of crappy software that people actually have a choice to move away from... and you're right. There are great Linux distributions out there which have a nice user interface, but they can't play all the games we have.

Linux always felt "unpolished" or not quite ready for prime time, but I can understand why --it was later to the game and a game changer; however, it wasn't geared towards games either.

The Apple Mac always had one disadvantage. They fed students a steady diet of their Apple IIe computers in the hopes that they'll gather more market share --however, some got tired of eating their crap and moved on to machines that were more mainstream in the industry. As a result, Apple products are now sold to people that tend to be more snobbish and have more expendable cash than your average layman.

Microsoft doesn't always do bad things, in fact they do good things like clockwork. Every version of any OS they create is predictably good or bad. DOS 2, sucked, DOS 3, better, DOS 4 ate hard drives, DOS 5, much better. You can follow the same pattern for releases of windows too. I settled on Windows 7. However, the underpinning OS on Windows 8 is great, I just didn't like the user interface that some tofu eating squat thought everyone would love.

Windows is *not* crappy software for those using desktop software (Linux still rules for server-side stuff).
avatar
amadren: I've seen on many reviews and website that OpenGL was faster, better looking and cross compatible. So why everyone keep using DirectX if OpenGL> DirectX?
Hi!

I am not a programmer but once were a kinda PSP tester for JPCSP emulator. I can say that in my experience OpenGL is a pain in the ass, while DirectX is easier to work with.
Also, DirectX already includes controls, sound and other stuff to work with, while OpenGL forces DEV to seek another sources to do that. Besides, games look nicer with DirectX than with OpenGL, well, at least the ones I compare.


avatar
hedwards: But, the main reason that people use DirectX is that MS pushed it hard and used the size of their company to damage OpenGL.
...
avatar
hedwards: ... the only reason that MS created it was to make it more challenging for developers to also support Apple computers.
LOL, Do you hate Microsoft, don't you?