Independent game company Wolfire write why you should use OpenGL and not DirectX. The article goes over a brief history and the standard and Microsoft’s tactics with DirectX, and what this really means for developers. DirectX keeps games on Windows, and that’s not a good thing–over half of the users for one of their games are not on Windows. The fact is that Microsoft will have you believe that DirectX is the better choice for gaming, but OpenGL has always had the best features, first, and in a consistent and transparent way. I’m particularly interested in the last couple of paragraphs where WebGL is mentioned because this is gaining traction with browser vendors and it would go directly against Microsoft’s grain for them to implement it in IE–as they should. Will we see yet another generation of Microsoft ignoring the standards and going their own way with a ‘WebDirectX’?
I give an Amen x 2 on this one. Games are one of the biggest reasons people are locked in to Windows – and the biggest reason games are usually only on Windows is because of DirectX.
I don’t think Microsoft did it on purpose. Things were pretty bleak in the pre-DirectX days for Windows’ gaming. Basically, you mostly just had little 2D games. Everything cool (esp. 3D) was still being done in Dos. DirectX brought powerful gaming to Windows. But I do not believe there is any reason now that we have to use DirectX, other than developers and companies who just want to keep doing things “the way we’ve always done it”. Even if you feel Linux will never be a viable market, I still would at least consider the Mac folks.
However, XNA allows developers to target Windows and the XBox 360. I’m sure that’s just a little too tempting for the Windows gaming devs to ignore.
_Everything_ Microsoft make, is to make people use Windows. Now, there’s nothing wrong with them choosing to do that—it is their business, but I think that model is no longer as effective as it used to be. In this day and age it’s about participation—if you contribute to everybody’s success, you bring the whole market up and thus, your slice of the pie increases. You increase the slice by doing the same job as everybody else, better.
Microsoft are in absolutely no way open to the idea of an open web, and that includes a web using OpenGL.
No, these days it’s the Xbox. Microsoft does even no longer release its own games for Windows. Or have you seen Halo 3 for PC?
You need Windows to develop for the XBox, and the media centre features are designed to work with Windows. Microsoft did try to push their XBox Live gaming service to Windows, but haven’t had much success—it didn’t stop them from trying.
It perfectly fine for them and their business, but let’s not be naïve—if you own an XBox, Microsoft want to do everything to make sure you choose a PC and not a Mac too.
Actually, development of XBox360 games is done on PowerMac G5.
G5 Macs were test hardware Microsoft used as a simple approximation of the PPC chip in the XBox 360 before everything was finalised and they had actual test hardware in their hands. They probably also used the G5s to test their compilers and cross-compiling binaries. I would find it very hard to believe that Microsoft would require an out-of-production computer (by four years) to develop on the console, considering if that a G5 were to explode, where exactly is a company expected to get one, eBay? I can’t imagine EA putting wanted ads on Craigslist trying to buy up all the G5s lying around.
Actually, No. There is an addon for Visual Studio that allows you to use C# to develop games that target Windows/xbox360/Zune, all from the same source code. I have it installed here, but my limited imagination keeps getting in the way of my ability to release a huge hit, and then retiring.
I think, playing games is more mainstream than developing them.
MS no longer develops any games for Windows. Even the first two Halo games were a year or so late on Windows.
MS doesn’t even try to push that feature. Xbox Marketplace is MS’ preferred way to obtain media.
MS pushed nothing. MS ported Xbox Live to Windows YEARS after being available on Xbox (two years if you only count Xbox 360).
MS just ported Live to Windows to ensure that Xbox games could be eventually ported to Windows, but only Windows and not Linux and Mac.
If MS didn’t port Live to Windows, developers who want a PC port may need to write their own multiplayer layer and that one could and up on Mac and Linux.
What I find enormously amusing about that is that I’ve had much, much more success with my PS3 as a media extender than my XBox 360, owing largely to the PS3’s incomparably superior UI (and the fact that the PS3 will let me copy media to its local drive).
True that. A major reason I didn’t get Dawn of War 2 was that it required the use of… whatever the service is called, Windows-side Live. Basically, forcing me to get and use a Games for Windows account, when I already have a Steam account and a damned Gamespy Arcade account… yeah, no, I’ll just use a game that properly integrates with the vastly superior and much-preferred Steam service.
Microsoft are in absolutely no way open to the idea of an open web
You are so uninformed, The MS Asp Ajax library works not only with MS techologies, it works with php, plain HTML and javascript etc. etc. and it is integrated with JQuery.It doesn’t even need windows because is standar. It is opensource and is part of the codeplex foundation. Please Krok, you sound like a broken disc, inform your self.
Ran through the demos, It doesn’t seem to work on opera or firefox on my fedora box. I’m guessing its relying on IE only quirks? Can’t tell really, don’t have windows near me. Maybe it works on Firefox/opera windows, but then, its most likely not working with html/JavaScript standards.
The MS ASP AJAX library requires ASP, a .NET technology that encourages the primary use of Windows to develop with and a Windows server.
Microsoft can’t ignore Firefox now, but that doesn’t mean that they don’t want to tie people to Windows in other ways too.
Correction—I’m thinking of something else, I think? I know I’m going to be corrected that the MS AJAX library doesn’t require .NET. *sigh* I’m tired.
MS Ajax Library 4 doesn’t need asp.net, because are a bunch of standars libraries.
It only needs standar webservices and those can come from whatever languaje or framework you want as long are standars.
I repeat, Inform your self.
Check this:
http://www.freeimagehosting.net/image.php?ca0ace919b.png
Here is the full video this:
http://microsoftpdc.com/Sessions/FT29
Edited 2010-01-09 14:16 UTC
Kroc corrected his statement tree hours before your comment.
Not that I’ve looked into it, but I thought people switched from OpenGL to DirectX because of the ease of development, not extra features.
Of course, they suffer very little because Mac and Linux (and etc, this IS OSNews) users don’t number all that many and/or dual boot. Smartphones are probably the only reason to reconsider that one.
Actually Wolfire (the company who wrote the article) have found that over half of their paying customers are on mac or linux (which don’t support DirectX). People on these systems may be small, maybe only a few % of the overall market, but think about how big that market is. It’s still a very large amount of people (million? I’m not sure on the numbers…). Would you consider cutting out that many customers when you could just change technology and get them all?
Edit: Also, ease of development doesn’t really come into it because any developer worth their salt will wrap DirectX or OpenGL into a library instead of accessing the calls directly from the game code.
Edited 2010-01-08 22:55 UTC
I don’t know. It depends on how much it would cost to switch technologies, and how much longer it would take to use OpenGL as opposed to DirectX. One thing these commercial game publishers know is money, and if they thought it was more profitable to make the switch, I’m sure they would. And they don’t give a ding dong didly about idealism either, so if it ain’t making them a big enough profit to develop for other platforms, then Mac and Linux users can eat sh*t and die for all they care.
I’d buy and do far more gaming if I didn’t have to stop everything I’m doing and reboot to Windows just because the one blob of code required DX. I’d happily shell out the cost of bleeding edge games if they offered more choice of platform.
For the game tuner geeks; how freaking high could you push your FPS counds if you could install that latest block buster on a minimal *nix install. No dumping resources into the rest of the system that’s imposed through the Windows mega-install. WOW is already reported to run better on *nix and that’s including the performance hit due to extra abstraction layers (wine/cedega).
It also has to do with the number of potential customers…
Those markets may be smaller, but there is also a lot less competition… Selling into a smaller but less crowded market can often be very profitable if you get in early enough.
Incidentally, i had never heard of these games… I will be reading up on them later.
Very True, and it isn’t just because of the ease of handling 3D graphics in DirectX. But it also provides a solid network and audio API that is either lacking or non-existant. There are initiatives like OpenAL to try to bring a full open source solution to game developers.
I think its marketing/ease of development that has caused the shift, and with the lion’s share of the desktop market being windows, developers unfortunately tend to ignore the fringe MAC and Linux markets. Which forces people like myself to dual boot if I really want to appreciate PC games.
Actually, from my experience, OpenGL is much easier. DirectX has a huge amount of boilerplate code. SDL + OpenGL is very nice.
Quotes from the article that may help you get back to reality:
1. “OpenGL is supported on every gaming platform, including Mac, Windows, Linux, PS3 (as a GCM wrapper), Wii, iPhone, PSP, and DS. Well, every gaming platform except for the XBox”
2. “More than half of our Lugaru users use Mac or Linux (as shown in this blog post), and we wouldn’t be surprised if the same will be true of our new game Overgrowth. When we talk to major game developers, we hear that supporting Mac and Linux is a waste of time. However, I’ve never seen any evidence for this claim. Blizzard always releases Mac versions of their games simultaneously, and they’re one of the most successful game companies in the world! If they’re doing something in a different way from everyone else, then their way is probably right.”
3. “if you use OpenGL, you get faster and more powerful graphics features than DirectX 11, and you get them on all versions of Windows, Mac and Linux, as well as the PS3, Wii, PSP, DS, and iPhone.”
4. “If you’re a gamer who uses Windows XP, Mac, or Linux, I hope you can see that DirectX only exists in order to keep new games from reaching your platform, and the only way you can fight back is to support games that use OpenGL.”
In case you missed it, the issue is NOT about just Mac and Linux games and gamers, rather it is about Mac, Linux, PS3, Wii, PSP, DS, Windows XP and iPhone.
Edited 2010-01-09 09:31 UTC
I call bullshit one that one – the OpenGL committee is very slow, and thus you’ve had to depend on vendor extensions to get the latest features… how portable is *that*?
You can check to see what extensions a platform supports – so it’s not as big issue in terms of hardware portability as you make out.
And if you’re migrating from one OS to another, you’d need to rewrite chunks of non-OpenGL code anyway (eg the iPhone will have different APIs to XP)
OpenGL 3 is updated far more frequently than DirectX.
Who voted my down?
OpenGL 3.0 – July 11, 2008
OpenGL 3.1 – May 28, 2009
OpenGL 3.2 – August 3, 2009
DirectX 10 – November 30, 2006
Direct3D 10.1 – February 4, 2008
DirectX 11 – October 22, 2009
Last three DX updates took MS 3 years.
OpenGL 3 was updated 3 times in 1 year.
Which has only been a recently phenomenon; prior to those dates, the improvements coming out of working committee were as slow as the W3C. 2.0 Didn’t come out until September 2004, 2.1 didn’t come out until July 2006.
I’ve said it once, and I’ll say it again, what is required is a complete API framework like what Microsoft provides. They not only need OpenGL, they also need OpenAL and OpenIN (a framework for input devices that needs to be started – doesn’t exist yet) that comes under the rubric ‘OpenDA’ (Open Direct Access) where consolidated standards are released on a yearly basis which includes all of the above. Put everything under one roof and create a good developer experience with great development tools. If you do that, then the developers will come.
Edited 2010-01-11 00:52 UTC
Such frameworks do exist, they’re just not blessed by the Kronos group. SDL is pretty common and well-known, is available on many platforms, and includes at least sound, networking and keyboard and mouse I/O (I think it also covers file I/O, 2D graphics and image loading). There’s also GLUT — while nobody’s going to call GLUT impressive, modern, or feature-rich, it at least covers basic windowing and keyboard/mouse I/O, and is probably available everywhere OpenGL is.
This seems reasonable enough to me. As you point out, the Kronos group has enough trouble keeping the OpenGL ball rolling that it’s probably best left to somebody else to handle things like networking and sound. Besides which, SDL is doing a pretty good job of it, so far as I know.
They don’t seem to have helped you any, so I ain’t holding my breath.
So, in other words, it works on all platforms except for the ones that matter. Uh, impressive?
Xbox 360 is the only platform that matters? WTF?
Lol, do you understand that if you desing game on PC IT WON’T PORT STRAIGHT TO iPhone or other same category platform! Making games on PC, XBOX360 and PS3 seems to be rather easy for most companies so I fail to see problem. Perhaps biggest problem is that it isn’t worth making games on Linux or Mac. Look CCP, maker of Eve online, they dropped Linux since it was too much waste since they got it working on Wine. Perhaps this was even slightly news if game studio like Epic Games would say to dump DirectX but they aren’t, they love it. Article is FUD and I’m not suprised it was bringed here by Mr. Standard Fantastic Kramen.
This is false and keeps being said by people without real experience about console development.
The only games console that provides OpenGL support is the PS3 and it is not the standard one but OpenGL ES which has its own way of dealing with the API.
As for the other consoles the graphics API are GL like but they are NOT OpenGL.
I really don’t know where some people take the idea that besides Microsoft everyone else is using OpenGL.
Please attend some Game Developer Conferences before go talking about graphics APIs like this.
Having said this, I am a big OpenGL fan and I hope it lives on, but in the end it is just another graphics API like many others.
Isn’t porting between similar APIs still easier than from one API to a completely different one?
No, because being similar does not mean that your calls are easy to map, specially if you have hardware dependent optimizations.
And these days most people develop with game engines, unless you are developing a game engine.
Why does idSoftware still do their engines in both APIs then?
Edited 2010-01-09 15:50 UTC
It seems to me, as a matter of revealed preferences among game developers that DirectX must have some useful qualities or one wouldn’t have seen the tremendous exodus from one-off schemes and OpenGL when DirectX was still young.
The article implies this transition began in earnest with the launch of Vista, but in my experience as a consumer DirectX was dominant long before Vista was launched. More like 1998 than 2005.
MS wasn’t paying all those game developers to switch. My impression had been that many companies found it faster to develop under DirectX. Speedy development is always important in software, but vital for games. That doesn’t make OpenGL bad or even mean that on a feature for feature basis OpenGL isn’t better, only that many companies find it faster to develop a game with DirectX than OpenGL while still accessing an acceptable level of features and performance.
The article also dismisses DX10 as mainly marketing hype without anything new. That isn’t the case, as DX10 was a major release with a new driver model, shader model, etc. The marketing may have been only hype, but there were real changes under the hood.
There are several reasons. One of the obvious and familiar ones is that DirectX is built directly into the primary target platform for most games. Another is driver quality: OpenGL drivers are of notoriously poorer quality that DirectX drivers, for several reasons. And then you have lots of cruft in the API: you basically have several different, overlapping Fundamental Theories of Operation, to coin a phrase, build into the OpenGL API, because, until fairly recently, they’d never deprecated anything. This makes OpenGL a very large, complicated, difficult-to-learn, and very-not-orthogonal API.
Addressing the last two problems has been the primary thrust of the OpenGL 3.0, 3.1 and 3.2 releases, where Khronos has defined a deprecation procedure, and flagged several very old interfaces as “deprecated.” Last I checked, those drivers where very slowly showing up and getting distributed.
Edit: Oh, right! And part of the reason that people jumped ship from OpenGL is because complaints started to mount about the massive, hideous API and poor driver quality very early on, and for a loooong time, Khronos just ignored the problems and sat on OGL 2.1 and did nothing at all, Microsoft-style. Many people did not like this, and moved to a platform with driver testing, a saner, more orthogonal API and a changing version number.
Edited 2010-01-08 22:11 UTC
And on top of all this, we can add that the OpenGL committee is extremely slow-working, leaving developers forced to use vendor extensions to use the latest features – whereas DirectX adopts (or even pushes) things faster in a more vendor-neutral way.
Three OpenGL 3 revisions within 1 year.
The last three DirectX revisions were done within 3 years.
–> Today OpenGL revision happen 9x faster.
(OpenGL revisions were slow in 1.x and 2.x days, but those are over.)
Edited 2010-01-10 12:37 UTC
While I don’t disagree with you, I would point out, the “bad old days” of 2.0/2.1 are a large part of why many developers jumped ship to DirectX. People wanted a clean API, basically focused on buffer and shader loading, with all this other garbage cut out… and the ARB did pretty much nothing to give it to them, for a long while.
Earlier than that, WinQuake & GLQuake both required DirectX.
It’s a pretty stupid to compare DirectX and OpenGL, though. There’s no either/or choice between them and the majority (all?) OpenGL games for Windows require DirectX too.
Although the article (or the summary) appears to have been written by someone with no clue what he’s talking about. Even most gamers know there’s a difference between DirectX and Direct3D, and OpenGL and SDL.
To be fair. The article states that there is nothing new in DX10 that is not already in OpenGL.
currently Direct X is a more capable (though obviously platform restrictive) system than OpenGL. I say this as someone who has spent a lot of time developing hoby games and a decent amount of time developing advanced 3D stuff. OpenGL only recently caught up to Direct X with its 3.2 release, and while it is a great release (the best yet as far as i am concerend) its still not on par with Direct X 11.
That being said, I use OpenGL for many reasons such as platform portability and the fact that I WANT OpenGL to succeed and get better and better (as it does with each new release).
And yet, you are missing the point of what the original author was stressing. You want all features to be built into the API as standard, but OpenGL was designed in mind that a lot of advanced stuff will be done via the vendor extensions. And that is where OpenGL beats DX.
DirectX is not just a graphics API.
So technically we should be comparing Direct3D with OpenGL, DirectX is a superset of multimedia interfaces thus comparing it to OpenGL is a tad like apples to oranges.
As much as I don’t like Microsoft. They did get this one right since they offered a relative uniform interface for multimedia apps which abstracted a lot of the underlying hardware. Even if OpenGL catches up to Direct3D, one still has to contemplate audio, input, and other issues.
OpenGL is not the only API by the Khronos Group.
Huh? and that has exactly what to do with the post I wrote?
You wrote that Direct3D is only a part of DirectX that offers various other APIs for other aspects.
And just like DirectX and its subset Direct3D, the Khronos Group also offers other APIs that complement OpenGL. The API set does not match DirectX 100% (Khronos has no input API for example), but Khronos still has a rich set of multimedia-related APIs: http://www.khronos.org/about/
For game development there’s also OpenAL as sound API. Granted, that is not handled by Khronos, but it’s widely used.
this article could be called pure FUD
OpenGL is the result of an SGI-MS project that completely stagnated because of SGI during the 1.x times.
at that time ms started to develope directx to get rid of all the cruft
directx had it’s first boom after the release of DX5 (iirc they droped backwardscompatability with it)
and calling opengl open (in the sense of free unlike in beer) is a bit misleading when you consider that you had to pay a license-fee to implement it (but not anymore)
and a final word to wolfire:
half your sales being on alternative platforms doesn’t mean that you’re doing sooooo well there, but that noone on windows gives a shit about your game
OpenGL was developed from IrisGL at SGI. The SGI/Microsoft project was Fahrenheit, not OpenGL.
You don’t know what “open” means, and you did not even know that OpenGL has nothing to do with Microsoft.
Hey but don’t let your total lack of knowledge about the facts stop you from correcting other people…. LOL
The Mesa3D project never paid any fees to implement OpenGL.
The 50% of purchases statistic is not necessarily due to the market being there. Consider this exaggeration: if you’re the only company making commercial games for Macs and Linux, then you ARE the market. The multi-platform part becomes a selling point.
Now, if you’re a huge game developer developing a top-selling game, gamers won’t care that their Mac or Linux-powered machine cant play it. The platform isn’t the selling point when the game is so popular. It’s not as if Call of Duty: Modern Warfare 2 were released for Macs and Linux then it’d be anywhere near 50% there.
Also, as a hobbiest game developer, I have a couple big problems with OpenGL:
-Mac OS X doesn’t support OpenGL 3.0 or higher. So if I were making a game with OpenGL, I would stick with the less-featured legacy that is OpenGL 2.0. The problem here is 3.0 deprecates pieces required to use 2.0, so I’d have to write two fairly different renderers if I wanted to utilize them both.
-OpenGL on Windows isn’t as robust with obscure hardware configurations. When a user has multiple graphics adapters and/or displays, it’s hard to know exactly how OpenGL will react. With DXGI, it’s better-documented and highly-configurable.
Those are pretty petty reasons, but I like robustness, and the easiest way to make a robust game is with Direct3D on Windows.
Not yet, officially.
And since “options” and “Apple” are not compatible words, you can easily use vendor supplied advanced functionality on Macs. Just because you will definitely know what set of hardware your software is running on.
Do you have any proof that Apple forbids GPU vendors to offer OpenGL 3.x compatible drivers?
Why is Mesa3D compatible with MacOS when Apple supposedly forbids options? http://mesa3d.org/systems.html
Troll…
If you know your programming, you will be aware that Mesa3D is a SOFTWARE renderer.
Quite nice to try some algorithms, but that is about it.
I asked JAlexoid: “Do you have any proof that Apple forbids GPU vendors to offer OpenGL 3.x compatible drivers?”
So does Apple forbid that?
Good point. There’s also the question of whether or not targeting Macs makes sense for high-end games since so few have decent video cards. Game companies often ignore the pc and only target consoles these days for valid reasons so I think it is incredibly simplistic to just say “use opengl and target everyone” when for some types of games that would be a complete waste of time.
Since when are GPU vendors forbidden to offer OpenGL 3.x drivers for Mac?
Just because Apple doesn’t ship them by default? MS does not ship OpenGL 3.x drivers by default either, yet NVidia and AMD manage it to offer them.
Another great article that could be put into main page
I don’t have the programming / OpenGL knowledge to write a long item about it. The article is very self-explanatory and there’s not any “news” I can add to it.
FTA:
This is patently false and is the exact reason why Direct3D obliterated OpenGL. The pace of updates for standard OpenGL was absolutely glacial resulting in ATI and NVIDIA implementing custom extensions to expose the latest hardware features. For web developers reading this, imagine -moz-border-radius/-webkit-border-radius but several orders of magnitude more complex and pervasive throughout development. OpenGL code simply became unmanageable for anything more complex than basic texture mapped 3D rasterization.
The situation is better now with OpenGL 3.0, but likely to become a problem again with the next batch of hardware unless Khronos can keep up.
That may be, but I’d still go with the judgement of John Carmack.
I’d rather go with the judgement of the majority of game developers.
John Carmack is of course a great developer but he’s always had an interest in cross platform development that he will prioritize over costs and productivity.
Unless things have changed, Carmack uses a 360 as his primary dev platform (Tech5/Rage).
http://techreport.com/articles.x/8665/1
…but imagine if MS had decided not to try and lock people into their OS and supported OpenGL, where would OpenGL be now.
Apple is a good example of this, they have added a lot of nice features to OpenGL when it didn’t quite meet what they needed… MS could have added a lot of features they thought were lacking too, that way everyone wins…
You can bet their version of Office for the web will only run with IE, or need SilverLight, something to lock you into to a MS standard…
Did you miss that video Google made demoing Chrome OS where Chrome recognized a word fie and loaded it up in Office for web?
Microsoft is not as evil as they use to be. Now they want to make a product that workds with more browsers so they can make more money. Yup, i smell lock in. /s
“Works” is a relative term. Office live will also use Silverlight to fill in all the empty holes in IE that other browsers handle fine, but at the same time Microsoft will be using Office Live as yet another delivery mechanism to get Silverlight on as many PCs as possible to place it over Flash.
Microsoft’s long term goal is to usurp HTML/JS/CSS, one way or another.
Oh give me a break. MS has provided way more to OpenGl than Apple by way of adding features to DirectX for OpenGL to copy.
Apple has never cared about gaming and has only recently supported it through the iphone since games have been the top grossing apps for them.
Just read about Valve’s experience:
http://www.macrumors.com/2007/10/01/valve-softwares-co-founder-expl…
From my limited understanding, I think most of Apple’s registered extensions are pretty much only used on the Mac platform. I’m not aware of any substantive contribution they’ve made to the OpenGL API that has wide use on other (non-Mac) platforms. If they have made such a contribution, I’d be interested in finding out what it is.
What do you mean, “ignoring the standards”? On Windows, and on X-Box, DirectX *is* the standard. Sure, it’d be nice if game developers wrote cross-platform code, but you’re deluded if you think OpenGL is some kind of blessed standard handed down from the gods.
I was specifically referring to WebGL which is partially implemented in two browsers (nightlies) at this moment. The fact is that if Microsoft want to participate in this future of the web, then they would have to implement WebGL, which would increase the number of developers learning OpenGL, which would increase the number of developers who go on to write games using OpenGL. Can you see the pattern here?
http://www.openscenegraph.org/projects/osg
OK, so it doesn’t say “standard”. But for all practical intents and purposes, it has no peer as a standard, because DirectX is so limited in the platforms which support it.
Some more links which may be of interest:
http://unigine.com/
(This one is not open, but it is cross-platform).
http://www.phoronix.com/scan.php?page=news_item&px=NzIyOQ
http://en.wikipedia.org/wiki/Simple_DirectMedia_Layer
(That one, in conjunction with OpenGL, is the open equivalent of DirectX)
http://en.wikipedia.org/wiki/OpenSceneGraph
(This one, mentioned above, is open)
http://en.wikipedia.org/wiki/Blender_%28software%29
http://en.wikipedia.org/wiki/FlightGear
(An example of the kind of thing one can do these days with OpenSceneGraph, SDL and Blender)
As for what this kind of software on Linux is used for, check this out:
http://www.reallylinux.com/docs/avataruseslinux.shtml
OpenGL is the standard. It works even on Windows, but lately Windows has imposed a significant performance hit on OpenGL, so serious graphics rendering isn’t done on Windows.
http://en.wikipedia.org/wiki/Weta_Digital
Linux. More precisely: “The underlying operating system, Linux RHEL (hundreds of HP blade servers running as Linux cluster)”.
Edited 2010-01-09 11:24 UTC
This is not true if OpenGL is slow on Vista or 7 then it’s ATI’s or Nvidia’s OpenGL driver at fault.
Who set this standard? The board of lemur’s imagination?
In reality most of the popular 3D game engines are designed around DirectX. OpenGL has gotten better but for years it lagged well behind DirectX. I kind of thought that was common knowledge.
A recognized standards organization with way more members than only Microsoft: http://www.khronos.org/about/
Well by that definition a 2 member board also has more members.
Would you say that a company that releases a game on xbla is not following standards by using Directx? Of course not, so it is silly to lament Microsoft for developing the own api. OpenGL has been copying Directx for years which calls into the idea that widespread collaboration is better for technological progress.
No, it’s not.
These days MS is holding back innovation on purpose, because these days the Xbox is MS’ gaming platform and MS does not want Xbox 360 and Windows to diverge far.
Yes, back in the day MS had more DirectX revisions than OpenGL had, but today it’s different.
DirectX 9.0c was introduced in 2004 and lasted four years.
DirectX 10 lasted three years.
DirectX 11 will probably stay the current release until the next Xbox is released.
OTOH after Khronos Group took over maintaining OpenGL, it managed to release three versions of OpenGL 3.x within a year. It’s now the driving factor in innovation.
The rest of the industry does not want to be held back, just because MS’ focus is not getting Xbox profitable at the expense of Windows.
Especially in the handheld space where no one cares about any MS-produced 3D technology any longer — OpenGL ES is omnipresent there and implemented by different OSes.
OpenGL is just getting some of the features which have been available in Direct3D for years, i.e. proper programmable shader support, very large scene graphs, etc.
A project that is playing catch up with competing products is not in a position of technological leadership, regardless of the speed it pumps out revisions.
You’re kidding, right?
DirectX got the High Level Shader Language with DirectX 9 in December 2002.
OpenGL’s GLSL was introduced as extension with OpenGL 1.4 in July 2002.
Interesting how you spin OpenGL’s half-year headstart into “years later”….
NVidia’s Cg which is equally compatible with Direct3D and OpenGL was introduced in June 2002, btw.
OpenGL 3.2 got geometry shaders before DX 10.1 (or whatever DX release it was), didn’t they? I remember seeing a new article talking about a new D3D technology, that would let you write shaders that would take a certain geometry and transform it on the card, and thinking to myself, “wait, didn’t OGL get geometry shaders, like, two months ago?”
DirectX 9.0 SDK was being updated every six months!
SDL is a great toolkit, but it is not at the same level of DirectX. You can only say that if you don’t have any idea of what the DirectX SDK has to offer.
This is what unfortunely keeps many people away from OpenGL, the lack of proper tools when compared with the support and tools available on the DirectX ecosystem.
Do you know that Maya, 3D Studio SolidWorks, CATIA and similar packages also have DirectX backend and are mainly used in Windows? Isn’t that serious graphics rendering?
No it isn’t. The odd single workstation running such applications is trivial. Rendering a 3D CGI movie such as Avatar, or any of these other movies:
http://www.wetafx.co.nz/features/
on an array of hundreds of HP Blade servers running RHEL, now THAT is serious rendering.
http://www.aussiemuslims.com/forums/showthread.php?p=390118
Edited 2010-01-10 07:50 UTC
So, your argument is that the more users and/or computers there are the more serious and professional something is?
No. My arguement is that the larger scope of the task, requiring several orders of magnitude more computation, the “more serious” is the rendering.
It is a tautology, really, when you come to think of it.
http://en.wikipedia.org/wiki/Tautology_%28rhetoric%29
That doesn’t mean it is wrong though … in fact it means it is right. Self evident.
What I said was:
Rendering a full-length, 3D, high-definition, CGI-intense movie such as Avatar is a more serious rendering task, very much so, when compared to a single program running on a single x86 workstation.
Edited 2010-01-10 09:15 UTC
If you knew anything about Hollywood movie production you wouldn’t be speaking such nonsense.
First the only reason most studios are using Linux is money.
Long before Windows and Linux existed those studios were using SGI workstations and other Unix systems.
Keeping using Linux allows the programs to be easily ported to an Unix system that does not cost anything, and they don’t have to train anyone.
Second having Linux means that they don’t have to pay a license for each computer, which on a render farm means LOTS of money.
Third, most rendering tasks are CPU/GPGPU intensive and they don’t have anything to do with which API is being used.
Actually most studios have Windows based Workstations, and only the render farm is Linux based.
Sure you can give me toons of links back, but the way 2 or 3 studios work, is not how most of them are working.
A studio, or indeed any system that uses a large array of processors, would be insane to use Windows or DirectX. Out of their cotton pickin minds.
http://scitech.blogs.cnn.com/2009/12/09/military-purchases-2200-ps3…
http://www.top500.org/stats/list/34/osfam
It would appear that most of the organisations that have a purpose for a large array of computers, and the funding to buy same, aren’t insane.
Regardless, more platforms use OpenGL than use DirectX. Way more. DirectX is found only on Windows desktops and Xbox games consoles.
Walk into a store which sells electronic games. Pick any one, perhaps this one will do:
http://en.wikipedia.org/wiki/EB_Games
You will find some DirectX games being sold therein, these can be identified because they will have either “for PC” or “for Xbox” written on the packaging.
The rest of the games in the store, for all of the non-Microsoft platforms, will be OpenGL. These are in the majority.
OpenGL is the defacto standard in any sensible way of looking at this.
Most games in store will be for Windows, most will use DirectX. The PS3 and the Wii don’t use the standard OpenGL. They both use modified versions that have proprietary extensions and require a dev kit. That’s why so many companies use middleware engines. Going from directx on pc to xbox is far easier than going from pc to ps3. Sony is notoriously bad in this regard. They don’t want you developing for both pc and ps3.
When people talk about OpenGL’s cross platform benefits they are really talking about the ease in porting across pc operating systems.
Really?!
Then I better throw away my Game Developer Conference tickets because last time I went to a conference, there wasn’t any console using proper OpenGL.
The only console using an OpenGL flavour is the PS3 with OpenGL ES, but nowadays almost no one uses it, because CGM (PS3 own API) is faster.
I really would like to know where the people get this nonsense ideas that all game consoles make use of OpenGL.
They have APIs that look like OpenGL, but not more than that.
Maya is pretty much AutoCAD for things outside of engineering and architecture. It sucks that they dropped the *nix builds of it but if your going to call Maya peanuts not worth recognizing then your a little off.
“Movies made in Maya include ‘The Mummy’, ‘The Mummy Returns’, ‘George of the Jungle’, ‘The Fifth Element’, ‘Final Fantasy’, ‘The Hollow Man’, ‘The X-Man’, ‘Anaconda’, ‘Stuart Little’, ‘Shrek’, ‘Sindbad’, ‘Pandavas’, ‘Starship Trooper’, ‘Lake Placid’, ‘The Phantom Menace’, ‘Spiderman’, ‘Harry Potter’, ‘Jurassic Park 3’, ‘Star Wars’, ‘Lord of the Rings’,’ Ice Age’ and more.”
http://archives.chennaionline.com/science/Technology/2005/05maya.as…
I’m the last person that would be promoting DX over a cross platform API but I can’t rationally ignore Maya regardless of the platform it runs on these days. I also recognize that the design app (Maya) is separate from the rendering cluster it’s models are fed through so I’m not sure why a rendering cluster is relevant to the desktop/workstation platform; it’s not like the cluster is rendering on the fly and displaying the results or providing an interactive experience.
My own field of work is more involved in simulation (specifically Flight Training Devices, FTDs, and Integrated Procedure Trainers, IPTs) than movie production.
This kind of thing is what we build:
http://www.pilatus-aircraft.com/html/en/products/index_1103.asp?Nav…
http://en.wikipedia.org/wiki/Flight_simulator#Flight_simulators_and…
(we don’t do Full Flight Simulators)
These guys are by far & away the serious competition:
http://www.cae.com/en/sim.products/sim.products.asp
In the past when we started we have used machines like this:
http://www.sgi.com/products/remarketed/onyx3000/
But more lately we have used this company:
http://www.ccur.com/Concurrent_ImaGen_COTS_Visual_Server.aspx
http://www.ccur.com/Concurrent_Visual_Rending_Providers.aspx
Warning, PDF: http://www.ccur.com/pdf/RedHawk.pdf
Windows nowhere to be seen.
Edited 2010-01-10 10:33 UTC
Concurrent’s ImaGen Visual Server website:
http://www.ccur.com/Concurrent_ImaGen_COTS_Visual_Server.aspx
says this (on the “Benefits” tab):
There you go then. POSIX, OpenSceneGraph, OpenGL and OpenGL Performer are indeed amongst the Industry Standards, according to Concurrent anyway.
Edited 2010-01-10 10:54 UTC
Yeah, sure, right, because modern CG movies are being rendered by a ten-year-old-or-more renderer. And the differences between SGI Unix and RHEL are so very minor that you could just copy that binary over and keep on using it just the same as you always did, right? (Hint: no)
Except… you do pay for RHEL — which I believe is what Lemur said was being used — just like you’d pay for Windows.
No. My arguement is that the larger scope of the task, requiring several orders of magnitude more computation, the “more serious” is the rendering.
Ok, so, your argument is that the more CPU-time a given task requires the more important it is. That could be argued about, but atleast that is an understandable argument.
Rendering a full-length, 3D, high-definition, CGI-intense movie such as Avatar is a more serious rendering task, very much so, when compared to a single program running on a single x86 workstation.
I still don’t really understand how that has anything to do with the topic at hand. The rendering is done in software so it has nothing to do with OpenGL. The only part where OpenGL has anything to do with anything in that process is when people create the content to be rendered, and we don’t know if the workstations used to create the content itself was running Windows or Linux, or something else.
Direct3D and DirectDraw, which are major parts of DirectX, are graphics rendering APIs.
http://en.wikipedia.org/wiki/Direct3D
http://en.wikipedia.org/wiki/DirectDraw
The rest of your graphics software stack, for both creation and production of computer-generated imagery (CGI), has to be written with this API in mind. It sets the target format of the whole stack of software.
In simulation, the original standard was OpenGL Performer:
http://en.wikipedia.org/wiki/OpenGL_Performer
but now this has morphed into a number of formats: OpenFlight, TerraPage, OBJ, 3DS, JPEG, PNG and GeoTIFF.
http://en.wikipedia.org/wiki/OpenSceneGraph
This is examples of the eventual output:
http://www.openscenegraph.org/projects/osg/wiki/Screenshots
Anyway, all of the graphics image databases have to be prepared with this in mind.
DirectX is an attempt to move this application stack away from Performer and other open (and semi-open) standards to Windows/DirectX so that people would require a Windows platform to do this type of work. None of this alternate platform stuff allowed!
To this day, Microsoft have been unsuccesful.
Edited 2010-01-10 11:45 UTC
While I know nothing of the kinds of software or set-up studious would use for CG rendering, I am extremely dubious of the claim that they’d be doing their rendering in software (as opposed to hardware accelerating it). Your render task will go a lot quicker if you use hardware acceleration, and with modern, programmable GPUs, I don’t think there’s anything you couldn’t do on a GPU that you could do in software (that you’d want to do during a render). And if you could pump out even just two frames using a GPU per one frame rendered in software — and I’m betting you could do a lot better than that — I don’t know why you wouldn’t use the GPU.
That has nothing to with DirectX being superior. MS does not ship GPU vendors’ OpenGL drivers at all. To get accelerated OpenGL you have to download the drivers yourself from the vendor’s web site.
Back in the day that was no problem, because all drivers were obtained that way, but ever since MS offers drivers via Windows Update, Autodesk et al. basically have no choice but to provide DirectX support as well. If they didn’t, other companies may had introduced DirectX support — giving them the edge in competition, because their software requires lower maintenance.
I think that’s also the main reason why game developers went from OpenGL to DirectX. Less burden for their Windows customers is probably more profitable than a few additional Mac and Linux players.
Well, that and the fact that DirectX is a complete multimedia API, which was designed with games in mind from the get go. That made development using DirectX a no brainer really, at least as far as windows is concerned.
You also forget, that a lot of games come with their own directX redistribution packages in case the customer did not get it directly from MS. They could have done the same if they were using OpenGL. The fact is that OpenGL hasn’t offered a clear value proposition for game developers in windows for a very long time.
And after MS dropped hardware-accelerated DirectSound support, OpenAL was quickly adopted by many games.
No, they couldn’t. Doing the same for OpenGL means shipping entire driver packages for all GPU vendors, because the drivers contain the actual OpenGL implementations.
Have you seen the sizes of Windows GPU driver packages?
NVidia alone:
– One set of drivers for so-called legacy GPUs.
– One set of drivers for current desktop CPUs.
– One set of drivers especially for notebooks.
Each of those available for Vista/Win7 and WinXP as separate package. Each package is over 110MB in size and I didn’t even look at ATI’s, Intel’s, S3’s, etc. drivers, but let’s say for the sake of argument, that round about 1GB is required to achieve the same thing for OpenGL. That space is more likely to be used by game data.
Of course, that all is no technical argument against OpenGL. It’s an inconvenience caused by Microsoft’s refusal to ship OpenGL-compatible drivers via the same channels it ships Direct3D-compatible drivers.
Before MS sabotaged OpenGL by refusing distribution, all the most popular licensable game engines offered OpenGL at least optionally:
Unreal Engine had OpenGL support out of the box, together with Direct3D.
Half-Life 1 had OpenGL support out of the box, together with Direct3D.
Quake 3 engine ran with OpenGL exclusively.
At least for me and a friend OpenGL mode ran smoother (IIRC he had a Voodoo 3 card and I had some NVidia TNT).
What Microsoft refusal?!
It is true that they are a company that plays very bad with everyone, even with their own partners (IBM and Sybase just to name two of them), but they are not the only ones to blame.
The number one culprints are the graphic cards vendors.
There are many more vendors than ATI and NVidia, but only these two try to provide some quality level drivers.
Intel’s OpenGL support is a joke, even more buggy than ATI, but they win in the number of deployed cards on the PC market.
Lets not forget that even though ATI and NVidia are supporting OpenGL, most of their tools do not. And in many graphics programming conferences the research work they present is mainly DirectX based.
So, yes Microsoft might be a very bad corporation but they are not the only ones to blame.
Plus if you look at the computer industry, from C compilers, UNIX flavors, Databases and so on, every vendor is making their little work to prevent users to easily switch to another vendor.
Microsoft just happens to be the most successful company playing this type of game.
another DirectX vs OpenGL thread!
cfr. http://equinox.planet-d.net/dxgl.jpg
So DirectX is equivalent to an old has been rockstar riddled with drugs?
I’ll say it again – the advantage of directX is it’s the full package. Audio, networking, input devices, window setup, 2d and 3d. OpenGL is a 3d renderer and that’s that. Working in OpenGL you are stuck choosing a whole slew of other packages that may or may not work as you want even if you are only targeting winblows, much less linsux and OSHex.
Even so, I prefer OpenGL for 3d because I found it easier to understand, though it seems with OpenGL 3 they are determined to flush it’s simple elegance right out the window. Only recently with OpenGL running atop SDL have we even begun to have something approaching DirectX in scope – and even then you are pretty much left scrambling for a decent networking API… but at least with SDL sitting under OpenGL you can set up your window or fullscreen handle, have a working sound interface, enumerate and handle device inputs – and do so in a manner piss simple compared to handling openGL’s gruntwork manually – and certainly simpler than the 40 lines or so you end up with just trying to open a window and grab hold of the gamepad, mouse and keyboard you do in DirectX.
Though SDL’s audio capabilities are only good for simple games, you usually end up wanting to use OpenAL too. In that way tt shouldn’t be “use openGL instead of directX” it’s “use OpenGL, SDL and OpenAL” – though you are still stuck searching for a GOOD cross platform networking library as capable as what directplay used to provide or .net does now.