View Full Version : Leopard, OpenGL 2.1, and DirectX10 games
Irishman
Jul 25, 2007, 01:36 PM
So, with Leopard on the horizon comes the word that it will upgrade your OpenGL from 2.0 to 2.1. Good move Apple. So, feature for feature, how well does OpenGL 2.1 fare against DirectX10?
We've all seen the videos of new DX10 games like Crysis and see the jaw-dropping difference some of these advanced features can make:
time of day lighting
real-time ambient lightmaps
dynamic soft shadows
lightbeams
long-range viewdistance
parallax occlusion mapping
motion blur
depth of field
So, does anyone know if the newest OpenGL can take advantage of these awesome-looking features?
And is it going to be moot, because OpenGL 3.0 is supposed to be 3 months beyond that?
Eric5h5
Jul 25, 2007, 03:53 PM
You don't actually need OpenGL 2.0 or DX10 to do any of those features....
--Eric
Irishman
Jul 25, 2007, 04:04 PM
Well, then why are we only now seeing games that look this good? And what are they adding to the feature set if not NEW features?
shoelessone
Jul 25, 2007, 04:14 PM
You don't actually need OpenGL 2.0 or DX10 to do any of those features....
--Eric
Huh?
You realize that there is a reason they are releasing DX10 right?
I mean, sure, I guess you could "do any of those features", but DX10 makes it easier/more practical.
motulist
Jul 25, 2007, 04:34 PM
Maybe I'm just an old fart, but the graphical differences between different systems these days really don't seem to make any sort of significant difference in how fun a game is or how much I want to play it. Like "Ooo, on this system you can see the sun light glistening on the waves of the water, but on this other system you can only see a general shimmer of light on the waves." Who cares? Why does that make a difference in how fun the game is to you or how much you want to play it?
I'm going to clarify what I mean by using consoles as a stand in for generations of game play which includes the computer games of their time. The technological difference from atari to nintendo was huge, it literally changed the type of game you could play. Same with the jump from nintendo to genesis, and genesis to PS1. Each jump allowed you to play an entirely different type of game than the system before it and at an order of magnitude better graphical experience.
But at the point where you went from PS1 to PS2, the returns on technological advances really started to diminish. PS2 games had much smoother polygon shapes than PS1, and much less slow down in busy scenes and what not. But it didn't really change the type of game you could play, and it wasn't an order of magnitude better in it's graphics, it just made objects look significantly smoother and detailed.
Now with the jump from PS2 era games to PS3 era games, there is absolutely no difference in the type of games you can play and the graphics difference is pretty insignificant. Sure, things look yet again smoother and more realistic than the previous generation, but not in a way that really changes how much you can get your head into the game.
All else being equal, given a choice between slightly better graphics or slightly worse graphics, of course everyone will pick slightly better graphics. But at this point, every single system offers graphics that allow you to totally imagine the scene on your monitor is real, so differences between the systems really shouldn't matter to anyone any more.
Having lived through many generations of games I can tell you from experience - The only thing that matters in a game is how fun it is to play. There are many older games I prefer to playing than many newer games, and vice versa, there are many newer games I prefer to play over many older games. The graphics have nothing to do with how fun a game is to play, the only thing that matters is the gameplay itself.
Irishman
Jul 25, 2007, 04:58 PM
Maybe I'm just an old fart, but the graphical differences between different systems these days really don't seem to make any sort of significant difference in how fun a game is or how much I want to play it. Like "Ooo, on this system you can see the sun light glistening on the waves of the water, but on this other system you can only see a general shimmer of light on the waves." Who cares? Why does that make a difference in how fun the game is to you or how much you want to play it?
I'm going to clarify what I mean by using consoles as a stand in for generations of game play which includes the computer games of their time. The technological difference from atari to nintendo was huge, it literally changed the type of game you could play. Same with the jump from nintendo to genesis, and genesis to PS1. Each jump allowed you to play an entirely different type of game than the system before it and at an order of magnitude better graphical experience.
But at the point where you went from PS1 to PS2, the returns on technological advances really started to diminish. PS2 games had much smoother polygon shapes than PS1, and much less slow down in busy scenes and what not. But it didn't really change the type of game you could play, and it wasn't an order of magnitude better in it's graphics, it just made objects look significantly smoother and detailed.
Now with the jump from PS2 era games to PS3 era games, there is absolutely no difference in the type of games you can play and the graphics difference is pretty insignificant. Sure, things look yet again smoother and more realistic than the previous generation, but not in a way that really changes how much you can get your head into the game.
All else being equal, given a choice between slightly better graphics or slightly worse graphics, of course everyone will pick slightly better graphics. But at this point, every single system offers graphics that allow you to totally imagine the scene on your monitor is real, so differences between the systems really shouldn't matter to anyone any more.
Having lived through many generations of games I can tell you from experience - The only thing that matters in a game is how fun it is to play. There are many older games I prefer to playing than many newer games, and vice versa, there are many newer games I prefer to play over many older games. The graphics have nothing to do with how fun a game is to play, the only thing that matters is the gameplay itself.
For you maybe, but not for many of us. Realism, the ability to simulate reality to a degree of fidelity not possible before is VERY attractive. I remember playing Unreal when it first came out, and sure, the gameplay was there, but my jaw dropped at the realism, partially due to the graphics, and partially due to the sound. I am a BIG fan of immersion in a game, and anything that assists in getting me to that point in playing a game, I'm all for.
So, gameplay for me, is just one part of a plethora of elements that come together to make a GREAT game.
Oh, and PS, I'm an old fart too. (38), and got my gaming start with Pong on a Radio Shack console.
Eric5h5
Jul 25, 2007, 05:01 PM
Well, then why are we only now seeing games that look this good? And what are they adding to the feature set if not NEW features?
Easier/more optimized/better ways to do OLD features, I would expect. As for "why now", because the latest graphics cards are, as always, faster than the older ones. Which means you can do more effects and still get decent framerates, no matter what version of the graphics API it is that you're using. Seriously, pretty much all of the features you listed have been done before, but probably not all at once. ;)
--Eric
contoursvt
Jul 25, 2007, 05:24 PM
Here is an article talking about DX9 vs DX10
http://enthusiast.hardocp.com/article.html?art=MTA0NSwyLCxoZW50aHVzaWFzdA==
CANEHDN
Jul 25, 2007, 06:26 PM
For you maybe, but not for many of us. Realism, the ability to simulate reality to a degree of fidelity not possible before is VERY attractive. I remember playing Unreal when it first came out, and sure, the gameplay was there, but my jaw dropped at the realism, partially due to the graphics, and partially due to the sound. I am a BIG fan of immersion in a game, and anything that assists in getting me to that point in playing a game, I'm all for.
So, gameplay for me, is just one part of a plethora of elements that come together to make a GREAT game.
Oh, and PS, I'm an old fart too. (38), and got my gaming start with Pong on a Radio Shack console.
Some nerds need that realism from computer games because their lives just don't have enough.
contoursvt
Jul 25, 2007, 06:44 PM
Right because I see tons of realistic video games based on "driving to work" or "grocery shopping" or "a day in the office". :rolleyes: Maybe your life is pretty exciting so your realism may include day to day activities such as:
-Air to air combat and dogfights
-Auto racing
-WWII battles or other war activities
-Battling mean creatures that jump out at you from the shadows
...or maybe the problem is that your machine is too low end for serious visuals and you'd have to upgrade and its just easier tomake fun of people who do have serious hardware and can run decent games by calling them nerds and questioning their choices.
Some nerds need that realism from computer games because their lives just don't have enough.
Aranince
Jul 25, 2007, 06:49 PM
So, with Leopard on the horizon comes the word that it will upgrade your OpenGL from 2.0 to 2.1. Good move Apple. So, feature for feature, how well does OpenGL 2.1 fare against DirectX10?
We've all seen the videos of new DX10 games like Crysis and see the jaw-dropping difference some of these advanced features can make:
time of day lighting
real-time ambient lightmaps
dynamic soft shadows
lightbeams
long-range viewdistance
parallax occlusion mapping
motion blur
depth of field
So, does anyone know if the newest OpenGL can take advantage of these awesome-looking features?
And is it going to be moot, because OpenGL 3.0 is supposed to be 3 months beyond that?
You can do any of those in DirectX9 and OpenGL. The reason why we are just now seeing these effects more is A) The hardware is coming out that can handle all of these at once. B) DirectX10 and OpenGL 2/3 just takes advantage of the more powerful hardware and the architecture behind it better then the old versions.
It will be a very long time before anyone is running Crysis in High/Ultra High...atleast 2 or 3 years.
contoursvt
Jul 25, 2007, 06:55 PM
You can do all of those in DX9 however implementing them in DX9 is not as efficient so there is a benefit to DX10. You'd need much more horsepower to get the same visuals out of DX9 than with DX10.
For example if you took an 8800GTX and presented certain advanced visuals with DX10, it may run at 60fps (lets just pretend), running DX9 to achieve the same visuals may only get you 20fps. There was actually an article online that talked about the performance hit and it was huge.
Also I'm willing to bet that Crysis will be able to run on high detail (minus FSAA) on a single 8800GTS or GTX card at even 1600x1200 resolutions.
Irishman
Jul 26, 2007, 07:34 AM
You can do any of those in DirectX9 and OpenGL. The reason why we are just now seeing these effects more is A) The hardware is coming out that can handle all of these at once. B) DirectX10 and OpenGL 2/3 just takes advantage of the more powerful hardware and the architecture behind it better then the old versions.
It will be a very long time before anyone is running Crysis in High/Ultra High...atleast 2 or 3 years.
I don't know anyone, being new and all, but do we have that many programmers here?
Eric5h5
Jul 26, 2007, 11:23 AM
I don't know anyone, being new and all, but do we have that many programmers here?
We have some programmers here, but you don't have to be a programmer to look at engines like Unreal Engine 3 (or Unity, for something Mac-specific), which does most of that stuff without DX10.
--Eric
contoursvt
Jul 26, 2007, 12:25 PM
We have some programmers here, but you don't have to be a programmer to look at engines like Unreal Engine 3 (or Unity, for something Mac-specific), which does most of that stuff without DX10.
--Eric
I was under the impression that the unreal3 engine will have the ability to use directx10. Crysis is the same, DX9 and DX10 capability but if you take a look at some screenshots of DX9 vs 10 on the same games you will see that there is quite a bit more realism and detail they are able to squeeze out. Sure you can still play with DX9 but DX10 will definitly have the edge.
Irishman
Jul 26, 2007, 01:12 PM
I agree with Contours. Eric seems to be making it sound like there's no real reason for DX10 to exist other than to make Microsoft and graphics cards makers more money.
I thought I made it clear that I am talking about the combination of ALL those features together, taken to a whole new level of realism and immersion.
THAT is new.
fblack
Jul 26, 2007, 01:24 PM
For you maybe, but not for many of us. Realism, the ability to simulate reality to a degree of fidelity not possible before is VERY attractive. I remember playing Unreal when it first came out, and sure, the gameplay was there, but my jaw dropped at the realism, partially due to the graphics, and partially due to the sound. I am a BIG fan of immersion in a game, and anything that assists in getting me to that point in playing a game, I'm all for.
So, gameplay for me, is just one part of a plethora of elements that come together to make a GREAT game.
Oh, and PS, I'm an old fart too. (38), and got my gaming start with Pong on a Radio Shack console.
Yea I remember my jaw dropping when Unreal first came out and it was a loong way from playing pong on my Telstar. But I also remember that after the initial wow faded my head screamed in anguish at the sheer drudgery of the game. This is in contrast to the sheer addiction of playing Master of Orion2 (one more turn) which didn't have great graphics or the immersive quality of Call of Duty where I had to peel my face off the screen when I stopped. Did you ever play Fallout? The graphics were ok, but the storyline and multiple endings rocked! So I tend to agree with motulist fun is more important than the eye candy. Don't get me wrong you still need graphics, I'm not advocating going back and playing Zork, but story and gameplay are the major elements that make a game worth playing.:)
killmoms
Jul 26, 2007, 01:36 PM
You can do all of those in DX9 however implementing them in DX9 is not as efficient so there is a benefit to DX10. You'd need much more horsepower to get the same visuals out of DX9 than with DX10.
For example if you took an 8800GTX and presented certain advanced visuals with DX10, it may run at 60fps (lets just pretend), running DX9 to achieve the same visuals may only get you 20fps. There was actually an article online that talked about the performance hit and it was huge.
That doesn't have to do with DX9 vs DX10 themselves though. It has to do with the minimum Shader Model level specified by DX9 vs DX10. AKA, what it REALLY is talking about is the capabilities of the hardware as defined in the DirectX standard. That's why people are saying the same things are possible in OpenGL, if you're using the same level of hardware.
yellow
Jul 26, 2007, 01:47 PM
Though I really do not want to upgrade to Vista, I really DO want to see what my 8800GTS can do with DX10.
Eric5h5
Jul 26, 2007, 03:26 PM
I agree with Contours. Eric seems to be making it sound like there's no real reason for DX10 to exist other than to make Microsoft and graphics cards makers more money.
Er, no. In your first post, you listed a number of features that already exist without DX10, and asked when OpenGL would be able to do that stuff. I and others told you that it already can. The main reason for advancing a 3D graphics API at this point is to make it easier/faster to do fancy effects, and to take advantage of hardware features that also make it easier/faster to do effects. Direct3D and OpenGL will continue to evolve in that direction, and in no way did I imply that it was unneccessary. There just seemed to be some misapprehension that DX10 was providing some new effects that had never been seen before.
--Eric
Irishman
Jul 26, 2007, 06:14 PM
Er, no. In your first post, you listed a number of features that already exist without DX10, and asked when OpenGL would be able to do that stuff. I and others told you that it already can. The main reason for advancing a 3D graphics API at this point is to make it easier/faster to do fancy effects, and to take advantage of hardware features that also make it easier/faster to do effects. Direct3D and OpenGL will continue to evolve in that direction, and in no way did I imply that it was unneccessary. There just seemed to be some misapprehension that DX10 was providing some new effects that had never been seen before.
--Eric
Then why not just say what you JUST said at the outset? It would have avoided confusion about what you really meant. The prior comment just sounded dismissive.
icecone
Jul 27, 2007, 01:54 AM
Er, no. In your first post, you listed a number of features that already exist without DX10, and asked when OpenGL would be able to do that stuff. I and others told you that it already can. The main reason for advancing a 3D graphics API at this point is to make it easier/faster to do fancy effects, and to take advantage of hardware features that also make it easier/faster to do effects. Direct3D and OpenGL will continue to evolve in that direction, and in no way did I imply that it was unneccessary. There just seemed to be some misapprehension that DX10 was providing some new effects that had never been seen before.
--Eric
You are right, but the fact is that for the same game, DX10 provides you better graphics. (You can do the same thing with DX9, but the developers are too easy to write the code.)
Krevnik
Jul 27, 2007, 11:57 AM
So, with Leopard on the horizon comes the word that it will upgrade your OpenGL from 2.0 to 2.1. Good move Apple. So, feature for feature, how well does OpenGL 2.1 fare against DirectX10?
Leopard's OGL implementation isn't going to provide the framework to do that like DX10 does, but as mentioned, you don't /need/ DX10 or OGL3 to do it, just that they make it easier.
The /big/ thing for OGL on Leopard is the new implementation in bytecode. While running OpenGL in a virtual machine like Java (using a low-level VM, LVM) doesn't sound like it would improve things... it greatly lowers CPU usage by games. WoW went from 125% CPU to 25% CPU usage because of the changes. It leaves a lot more CPU for developers to leverage for other advanced features.
Siemova
Oct 4, 2007, 01:10 PM
Isn't 2.1 something like a year old already? I know Apple announced back then that they'd support it, but now that 3.0 is close I'd hope they would either include it instead or provide it via Software Update soon.
Wikipedia's article (http://en.wikipedia.org/wiki/OpenGL#OpenGL_3.0) on 3.0 was an interesting read. Basically, yeah, it just makes it easier and less system-intensive to do what's already possible (although it also lays the groundwork for future improvements). Personally, I think that in itself is a pretty nice advancement since, in addition to giving us better performance, it'll help attract game developers and make development itself easier.
rbarris
Oct 18, 2007, 01:10 AM
Leopard's OGL implementation isn't going to provide the framework to do that like DX10 does, but as mentioned, you don't /need/ DX10 or OGL3 to do it, just that they make it easier.
The /big/ thing for OGL on Leopard is the new implementation in bytecode. While running OpenGL in a virtual machine like Java (using a low-level VM, LVM) doesn't sound like it would improve things... it greatly lowers CPU usage by games. WoW went from 125% CPU to 25% CPU usage because of the changes. It leaves a lot more CPU for developers to leverage for other advanced features.
This isn't quite on target. The new Leopard OpenGL includes a technology known as LLVM, which is a dynmic code generator or JIT, and is invoked (as far as I can tell) if the application gives GL a shader that cannot run directly on the hardware of the GPU - examples would be, vertex shaders on Intel GMA graphics type systems.
Pre-Leopard OpenGL already did a form of dynamic code generation for those cases, but LLVM does it better.
It isn't accurate to say that the new GL is based on bytecode or runs in some kind of virtual machine. It's a large C library.
A goal for a developer writing a high performing app is to stay off as many of those paths that might invoke the dynamic code generator as posible, because all those paths lead to cycles being spent on the CPU instead of the GPU. In the case of the GMA 950 it is unavoidable (no VS HW, it can only do the pixel shaders) - but LLVM will do a better job there than the old code in Tiger.
A good app running on a discrete GPU such as ATI or NVIDIA parts should never have to invoke any LLVM-generated code if it's set up right.
BTW, this change of adding LLVM to GL in Leopard really had no connection with the speedups on WoW starting in Intel Mac GL in 10.4.6 and continuing through 10.4.9. Those came from other factors (new GL extensions and multi-threaded driver).
Krevnik
Oct 18, 2007, 01:32 AM
This isn't quite on target. The new Leopard OpenGL includes a technology known as LLVM, which is a dynmic code generator or JIT, and is invoked (as far as I can tell) if the application gives GL a shader that cannot run directly on the hardware of the GPU - examples would be, vertex shaders on Intel GMA graphics type systems.
It is invoked on the OGL stack itself as well as shaders. OGL and DX both have some CPU code that needs to run before a fragment can be passed onto the GPU. Light settings, texture settings, etc, etc... this all translates from the OGL state machine into instructions to feed to the GPU, and tends to be branchy, wasting CPU time checking if LIGHT_0 is enabled, yadda, yadda, yadda.
Shaders get a boost by using LLVM to optimize them as an intermediate step between the language that they are written in (GLSL or whatever), and the instructions the GPU receives.
But yeah, you are right about LLVM. In fact, if you want to get a better understanding of what Apple said about LLVM at WWDC 2006, there is a thread on the LLVM mailing lists that discuss it: http://lists.cs.uiuc.edu/pipermail/llvmdev/2006-August/006492.html
Pre-Leopard OpenGL already did a form of dynamic code generation for those cases, but LLVM does it better.
It isn't accurate to say that the new GL is based on bytecode or runs in some kind of virtual machine. It's a large C library.
A lot better in certain cases. I use WoW as an example not because it received a huge speedup (it only received something like a 7-8% speedup /at most/), but a large CPU usage drop, using the same WoW build on 10.4.10 versus 10.5. That CPU usage drop is important in games that are more CPU-bound.
Using LLVM or a JIT /is/ effectively running it in a VM. It might be an extremely light-weight VM, but hell, that is the whole /point/ of LLVM, to be a Low-Level Virtual Machine. :D
As for bytecode, the shell APIs aren't bytecode, but the stack itself is. If you poke around Leopard's OGL framework, you will even see the arch-targeted bytecode files.
A goal for a developer writing a high performing app is to stay off as many of those paths that might invoke the dynamic code generator as posible, because all those paths lead to cycles being spent on the CPU instead of the GPU. In the case of the GMA 950 it is unavoidable (no VS HW, it can only do the pixel shaders) - but LLVM will do a better job there than the old code in Tiger.
What you want to do is avoid invoking the code generator on the same code block repeatedly. You do this by making sure you don't keep mucking with the OGL state unless you have to.
A good app running on a discrete GPU such as ATI or NVIDIA parts should never have to invoke any LLVM-generated code if it's set up right.
Actually, you will get LLVM-generated code, but if you do it right, you shouldn't have LLVM constantly regenerating that code. The whole point is to more reliably and accurately optimize away branches and the like. You lose the benefit if you keep turning LIGHT_2 on and off, for example.
BTW, this change of adding LLVM to GL in Leopard really had no connection with the speedups on WoW starting in Intel Mac GL in 10.4.6 and continuing through 10.4.9. Those came from other factors (new GL extensions and multi-threaded driver).
Never really argued that, and as I said before, the CPU usage change of the LLVM-based OGL stack versus the old one is the huge win. You get fewer random CPU bottlenecks which cause drops in FPS, or prevent you from performing X level of AI, etc.
rbarris
Oct 18, 2007, 01:44 AM
Interesting. So, you would then expect this dynamically generated code to show up in, say, a Shark profile?
Even dynamically generated code has to be executed, so it should be visible right ? Even if it was only say 0.5% or something.
I'll go looking for that, thanks for the added info.
Krevnik
Oct 18, 2007, 01:55 AM
Interesting. So, you would then expect this dynamically generated code to show up in, say, a Shark profile?
Even dynamically generated code has to be executed, so it should be visible right ? Even if it was only say 0.5% or something.
I'll go looking for that, thanks for the added info.
Yes, the catch is that how you use OGL, and exactly what features your GPU has (modern ones take on a chunk of the task of vertex processing, so LLVM's usefulness may be limited there)...
In some ways you are right that on a modern GPU, LLVM will mostly provide benefit on shaders by using LLVM bytecode as an intermediate optimization language for the shaders, that lets OGL quickly go to GPU instructions, or CPU instructions if the shader won't operate or fit on the GPU.
But really, anything that provides me more CPU cycles for other things beyond processing polygons is a boon in my book.
voyagerd
Oct 18, 2007, 05:28 AM
And is it going to be moot, because OpenGL 3.0 is supposed to be 3 months beyond that?
Mac OS 10.5 does have all the OpenGL 2.1 extensions which include GLSL 1.20.
OpenGL 3.0's release is imminent. A lot of people expected it by late September/Early October. I've been looking forward to it. Khronos just has to approve it and make the specifications public. After that, Apple, ATI, and NVIDIA can start upgrading their OpenGL software/drivers with new extensions.
AppleWoW
Oct 18, 2007, 04:44 PM
So could we see a OpenGL 3.0 update some time when leopard has been out (10.5.3? etc) <--- meaning in a future update of leopard.
voyagerd
Oct 18, 2007, 06:14 PM
We better see OpenGL 3.0, and the planned 3.1 and 3.2 in future updates of Leopard, else I would be annoyed.
Stridder44
Oct 19, 2007, 08:24 AM
So could we see a OpenGL 3.0 update some time when leopard has been out (10.5.3? etc) <--- meaning in a future update of leopard.
It would be ridiculous if we didn't.
MacsRgr8
Oct 20, 2007, 03:39 PM
Let me get this straight:
Tiger supports OpenGL 1.1 - 1.5
Tiger 10.4.8 (Intel) can support OpenGL 2.0 on some grfx cards
Leopard supports OpenGL 2.1 (highend grfx?)
Leopard 10.5.x will hopefully support OpenGL 3.0
Right...
Now, as this is the "Apple Games" section, does anybody have any idea which games actually use any of the OpenGL 2.x features?
When a new DirectX api comes our way, EVERY gamer knows what the advantages are, which OS is required, which hardware is necessary, and.... which games use these new technologies, and the developers show-off those new technologies in their new games as new features which are put into online movies.
Any demos or movies showing-off OpenGL 2.x (or 3.0) features and technologies which could find its way in a Mac in the near future on the 'net?
Sijmen
Oct 20, 2007, 04:27 PM
time of day lighting
real-time ambient lightmaps
dynamic soft shadows
lightbeams
long-range viewdistance
parallax occlusion mapping
motion blur
depth of field
I've seen some of these features implemented in DX 9.
voyagerd
Oct 20, 2007, 05:48 PM
Let me get this straight:
Any demos or movies showing-off OpenGL 2.x (or 3.0) features and technologies which could find its way in a Mac in the near future on the 'net?
This has benchmarks for all the version of OpenGL up to 2.1. http://www.realtech-vr.com/glview/download.html
ATI demos:
SmartShader 1.0: http://ati.amd.com/developer/demos/macss1/index.html
SmartShader 2.0 and HD: http://ati.amd.com/developer/demos/macss2/index.html
I assume the HD ones at least use extensions from new versions of OpenGL, such as the Subsurface Scattering one.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.