Forum for the creative side of the game development process: art, music, storyline, gameplay, concepts, etc. Any sort of relevant discussion is welcome here.
Milch wrote:I dont get this video.
Its like: "DirectX11 has waaaayy more polygons than DirectX10"
So whats the point with DirectX11? More polygons - less fps?
Can someone please explain this to me?
I think that video just shows off DirectX11 rendering more polygons than DirectX10 due to better hardware acceleration, resulting in more smooth and detailed objects. Also it shows off DirectX11 having better texture detail than DirectX10 because of better use of advanced graphics techniques like Parallax Mapping -> http://en.wikipedia.org/wiki/Parallax_mapping, which again relies on the hardware to pull of fancy calculations. On another note, DirectX11 is designed for a new generation of graphics cards and operating systems i.e. Windows Vista and 7.
OpenGL still pwnz!
OpenGL?
but it got only graphic rendering...direct 11 got sound, graphic and so on.
But it is all based on how well do you create your model :P
"There is nothing either good or bad, but our thinking makes it so"
Milch wrote:I dont get this video.
Its like: "DirectX11 has waaaayy more polygons than DirectX10"
So whats the point with DirectX11? More polygons - less fps?
Can someone please explain this to me?
I think that video just shows off DirectX11 rendering more polygons than DirectX10 due to better hardware acceleration, resulting in more smooth and detailed objects. Also it shows off DirectX11 having better texture detail than DirectX10 because of better use of advanced graphics techniques like Parallax Mapping -> http://en.wikipedia.org/wiki/Parallax_mapping, which again relies on the hardware to pull of fancy calculations. On another note, Edit: DirectX10 and DirectX11 are designed for a new generation of graphics cards and operating systems i.e. Windows Vista and 7.
OpenGL still pwnz!
OpenGL?
but it got only graphic rendering...direct 11 got sound, graphic and so on.
But it is all based on how well do you create your model :P
aha True I guess xD, though in terms of rendering and multi-platform portability OpenGL is a great choice, but then again I'm a OpenGL fanboy so..
Milch wrote:I dont get this video.
Its like: "DirectX11 has waaaayy more polygons than DirectX10"
So whats the point with DirectX11? More polygons - less fps?
Can someone please explain this to me?
I think that video just shows off DirectX11 rendering more polygons than DirectX10 due to better hardware acceleration, resulting in more smooth and detailed objects. Also it shows off DirectX11 having better texture detail than DirectX10 because of better use of advanced graphics techniques like Parallax Mapping -> http://en.wikipedia.org/wiki/Parallax_mapping, which again relies on the hardware to pull of fancy calculations. On another note, Edit: DirectX10 and DirectX11 are designed for a new generation of graphics cards and operating systems i.e. Windows Vista and 7.
OpenGL still pwnz!
OpenGL?
but it got only graphic rendering...direct 11 got sound, graphic and so on.
But it is all based on how well do you create your model :P
aha True I guess xD, though in terms of rendering and multi-platform portability OpenGL is a great choice, but then again I'm a OpenGL fanboy so..
ah you got thet right...:P
if you want your game to run on mac, windows, linux you should use OpenGL :P
Ill coose that leater, I gues I dont want my game to be played only on Windows :P
"There is nothing either good or bad, but our thinking makes it so"
I think the trend with DirectX 10, 11, and possibly beyond is about pushing more of the CPU crap over to the GPU, as video cards are being built with more specialized chips and memory units. So more polygons does not necessarily mean less FPS if the video card can handle it. More things regarding graphics can be computed on shaders with relative ease. Before there were just pixel and vertex shaders, but now we have geometry shaders, hull shaders, etc.
OpenGL is not inherently bad- it can be just as good as DirectX. But I find driver support for OpenGL on Windows is subpar compared to other operating systems and that's really the fault of the video card vendors for dropping the ball.
But I find driver support for OpenGL on Windows is subpar compared to other operating systems and that's really the fault of the video card vendors for dropping the ball
OpenGL driver support is piss poor no matter what OS you're looking at. Linux is bordering on nightmare status. I wouldn't say that the blame rests entirely on the vendors, though. The spec itself is loose like boiled spaghetti and the API specification rests on top of an architecture that has not changed one iota in about 13 years. I remember using it extensively in 1998 when there was really no other viable competitor other than Glide and while the face of OpenGL has changed, its skeleton has not.
Graphics hardware today barely resembles hardware 13 years ago and the API has not reflected this change at all. So the existing implementations are almost a reverse engineering on part of the vendors for it to "fit" into this specification. Sort of like taking a pimped out 500 H.P. Camaro and putting stock heads back on it and saying "Oh yea, beat 11.5". Aint gunna happen. SGI dropped the ball a long time ago before Khronos ever got involved and Microsoft built, to put it plainly, a far superior API. OpenGL remains somewhat competitive, but it comes at a cost.
Don't look for the look of the API to change any time soon (or ever) either.
The above is *not* an argument for or against the other. I use both API's on a very consistent basis.
It's a reality check. It is what it is. Everybody knows it, we just gripe about it and move on.
Oh, and that "article" is the biggest and most atrociously uneducated piece of shit article I have *EVER* seen in my life. The man has no idea what he's talking about whatsoever. If you ARE into engaging in arguments about this subject matter, please do not spew forth THAT drivel ;] Kthx.
The above is *not* an argument for or against the other. I use both API's on a very consistent basis.
Why did you think I was talking to you, I was talking to the people making the usual comments like, "But you aren't just getting a graphics API with direct X!" as if that somehow makes it superior. Go find an input library/sound library and it's suddenly a non-issue.
If you ARE into engaging in arguments about this subject matter...
well clearly I'm not, that's why I said:
In my opinion each has it's pro's and cons. Arguing DirectX over OpenGL just seems silly to me.
and why would I want to do something silly.
Oh, and that "article" is the biggest and most atrociously uneducated piece of shit article I have *EVER* seen in my life.
Sorry for assuming that the Wolfire team, who have met with AMD and Nvidia, and are creating a full fledge 3d game using numerous modern techniques would have anything constructive to say. I realize you too are versed in 3d games and many of the modern techniques associated having seen your videos. But that doesn't make you the definitive authority on the matter, people have been arguing for and against each API for years and I doubt you can say there is absolutely nothing in that article that constitutes fact. So rather then calling the writers 'uneducated', or saying that the article is 'drivel' why not point out what parts are worth acknowledging and what parts aren't from your perspective. Thats a lot more useful to others, than, "That arguments shit, because I say so". (i.e. don't be a douche about it)
Listen, nobody's biting your head off. Chill out. Need not be so defensive.
So my opinion on GL is pretty well chronicled on the forums so, if you're really interested in me "not being a douche" you can perform such a search. Other than that, I'm not going to bore the readers with even MORE excessively long "I hate OpenGL because...." crap.
Other than that I think my assessment of that article is pretty right on. Perhaps they're not "uneducated" but I'd certainly say it's not based in any part of the real world that I've ever seen. I'm personally always extremely leary of professional developers who post agenda-esque blog posts on X vs Y. There's a professional way to critique it, but a mud-slinging campaign isn't it. I've heard more than my fair share of reasons for and against one or the other.
Trust me, I have plenty to say on the issue...if you're particularly interested you can contact me. Otherwise I'm not really going to make excessively long posts trying to back myself up.
Noooooo.
don't retract, I actually found your previous post very interesting!
I'm personally always extremely leary of professional developers who post agenda-esque blog posts on X vs Y
I was also going to say in my previous post that the openGL article is clearly very opinionated. I was actually a bit disappointed that the wolfire team posted an article that was so anti-directX but found a number of their points very interesting.
I had a once over of your post before you removed it, but didn't get a good read. I would very much appreciated if you send the previous stuff you mentioned via PM if you still have it as I was finding much of it interesting.
I'll try to keep it very short, but there's pretty understandable reason that vendors and colleagues look at them with a bit of disbelief.
So I'll address these questions.
Why does everyone use DirectX?
--------------------------------------
First off, the shift in favor of DX didn't happen in 2005, it happened a while before this. It'd be somewhere around 2000-2002. Much of the reason behind this was the rapidly evolving face of graphics hardware in favor of fully programmable architecture. Some of the first OpenGL offerings that addressed programmable architecture were just atrocious. It was around this time that the original XDK for XBox would debut a massive API restructuring for DX8. This is sort of really where the table started turning. You have to understand though, at this point, SGI still owned the rights to the OpenGL name and source (this is the source of extension hell). So vendors were forced to implement new functionality on top of an aging API and unfortunately this is the exact same process that is involved in implementing new functionality today (more on this later).
Long story short, this shift started happening well before Vista was even a thought. Everyone in the industry knew this was coming too because of SGI's reluctance to restructure an API who's major users are NOT game developers, but professionals in other sectors such as medical and engineering who have spent billions on old SGI machines.
Network effects and vicious cycles
----------------------------------------
Windows drivers are better maintained because they're easier to maintain. The DirectX architecture is a unified, keyword, unified architecture. DirectX tends to receive fewer bug reports because of this fact. Given several different machines, if they all support the DX9 API, you can be pretty assured a given program will execute without error across each system. Non-unified architectures tend to exhibit problems when it comes to cross-vendor and especially cross-platform support. The other issue that comes into play here was alluded to before and that is that the drivers are built on a now antique code base which has not caught up with current hardware. So given several different machines, if they all support GL3, you can almost bet that ATi will have issues and porting to Linux BOTH drivers will have issues and it's not because they receive a lack of bug reports. I've (and my colleagues) caught MANY bug reports in GL drivers and reported them all but you know what ends up happening? "This must be worked around because the architecture can not enforce API level constraints". This means: Our hardware can't do this because the API has constrained it, so we'll offer you this workaround. Usually the workaround involves using a vendor specific extension. Lovely.....
This whole training cost argument is just completely asenine. I have not met a graphics programmer in the industry yet who was not versed in both API's. It's usually only a very core group of people who are concerned with API level choices anyways while the rest sit an abstraction layer or two above it. These people are not concerned with engine level choices. You don't train engine programmers. Besides, if you're migrating core technology from DirectX to OpenGL you've got FAR more cost overhead involved than "training". Time is money.
FUD About OpenGL and Windows
--------------------------------------
Welp, Windows 7 has been the fastest selling Microsoft OS to date. It's apparent that gaming level consumers have not been bothered with any impact that may have been caused due to a "second class" driver. What it basically amounts to is that Microsoft doesn't ship an OpenGL driver with windows. This is *GOOD* for OpenGL! The reality is that because the API is particularly finicky with vendor platforms, the vendor distributions outperform any OpenGL driver Microsoft has ever offered.
Besides that, on the developer front, every major developer knows and knows well Microsoft's fear tactics. We all know they never amount to much in the end for developers because quite simply, if it ever becomes the case that Windows is NOT a viable platform to develop for, they simply won't. Its a mutually beneficial relationship that Microsoft has with its developers. The damage to OpenGL was done long before Vista was even a thought.
Misleading Marketing Campaigns
---------------------------------------
See above. Microsoft are masters of this art. They're not technically wrong, but they're not technically right either. If pooping out a few images of "shiny shit" will help boost consumer confidence during a marketing campaign....hell...do it! If the shoe were on the other foot it would have happened the exact same way. This does not detract from the fact that DX10 does over quite a number of exceptionally handy functionality that developers had been crying over for awhile, as well as some that don't matter whatsoever and only serve as marketing fodder. This has been the story for years and years. Nothing new here.
Misleading marketing, however, is not a reason to use OpenGL at all. So I fail to see the point. On the John Carmack note (who is about as close to an OpenGL poster-child as you can get), has publicly stated his doubts as to the future of the OpenGL API and has expressed his approval over the DX9 level API which he calls, and I quote "...simply a much more solid API". (During quakecon keynote). His comments were taken out of context as I was at this speech. He was referring to being abstinent as to hopping on ANY new technology. He understands that technology is very "faddish" and people get VERY excited over every new little thing while only a very small minority of this technology will ever see mainstream use.
OpenGL fanboys like to use John Carmack as a walking "OpenGL Campaign" while his actual opinions have shifted quite a bit from his public stance back around 2000.
OpenGL is more powerful than DirectX
---------------------------------------------
This makes me groan. If I were dead, I'd turn over in my grave.
Faster draw calls. Really? Alright, if DRAW CALLS are where your engine is bottlenecked you've got some SERIOUS issues that you need to work out and work out IMMEDIATELY! Thats sort of like saying "OpenGL is selling buckets of shit for $5 and MS is selling buckets of shit for $10". Thats great, but who wants a bucket of shit? It is true that OpenGL incurs less critical section overhead than the DX driver, but where games are limited (fill rate) this is a fraction of a percentage of the overall time spent in a draw call. When analyzing my code it's not uncommon to see a draw call take .543msec, and .002 being attributed to "API Critical Section".
OpenGL DOES have first access to new features! This is true. The issue here is that most of these extensions are rapidly deprecated in favor of another and are very architecture specific. One of the joys of DX is that its a "no-headache" approach to implementing core technology. Extensions are a HUGE headache. There are numerous instances where on a driver, a vendor will support extension A, but when you grab the hook, it's actually extension B which is an extension to GLX, masquerading as extension A, but actually behaves like extension B. It's enough to make a grown man cry. Developers don't like this....they dont wan't this. They're BEGGING for a unified architecture (sort of like what was promised for GL3, then GL3.1 (it won't happen)). The reason this won't happen is for reasons I have outlined earlier.
That said, the only R2VB extension that was worth a damn for OpenGL was *gasp*....R2VB...and guess what? Thats ATi only. Sorry nVidia. Secondly, much of the core functionality that was MISSING from OpenGL for a long time in regards to renderable surfaces were taken straight from the DX9 API (FBO, IBO, VBO) at the demands of developers for a much more unified way of dealing with hardware level buffers. The original asynchronous scratch buffer approach OpenGL took before was just laughable and performed HORRIBLY. That one fumble in particular was seen as just a massive FUBAR and drove people away from the API in droves.
OpenGL is Cross Platform
------------------------------
Hooray, something I can agree with. However, don't expect Linux to be a competitive operating system for gamers anytime soon or ever. (I'm also fairly critical of Linux, while I still run a few Linux distros). On PS3 and other console platforms, OpenGL is actually NOT the de'facto standard but usually a vendor mangled and vendor specific version of it. Most of them, for instance CTM, more closely resemble OpenGL ES, which IS what I believe OpenGL SHOULD be. However, OpenGL ES doesn't have a very long history and has had the advantage of being able to be developed ground up.
OpenGL is better for the future of games
------------------------------------------------
This may or may not be the case, it really just depends on whether the board can resurrect this thing from the rock under which it currently rests.
The bottom line is, OpenGL's enemy isn't Microsoft: it's OpenGL. It is it's own worst enemy.
I'm not sure that OpenGL can recover. I don't believe that the future of 3D gaming will rest in the hands of a duo of API's for much longer. There are some radical departures from conventional hardware on the horizon and while rasterization is still going to remain king, I think, I don't think that the 3D API as we know it will be able to compete for very long unless they offer a VERY robust GPGPU solution. Microsoft knows it (DX11 Compute Shader)...Khronos knows it (OpenCL). However this is only a start and I'm skeptical as to just how much ground either solution will take.