Ever since a company called Ageia profiled itself into the 3D graphics market, a lot of buzz has been made about bringing physics computing into games. See, physics calculations allow for a more extreme and real visual experience. But where to start, and how to get support for it, and what exactly is it ?
When you blow up stuff, you can see loads of scattered particles instead of a big texture doing weird stuff, fluid dynamics and other pretty cool stuff. Ever considered how nice it would be to see a perfectly simulated waterfall? Or think of a girl walking around with her dress not static but dynamically moving along with her body. That's what Physics in games can do for you. But we'll get a little deeper into what Physics exactly does in a minute though. Though the idea from Ageia was a really interesting one as a pioneer it had disadvantages, unfortunately the cards were put into the market way too expensive and received way to little industry support. They tried, and tried really hard. Next to that their marketing to the press was way below average and all they seemed to do was focus on the industry end to get support, and in the end they failed pretty badly.
See, to get PhysX support on a wide scale, you need a broad userbase to receive industry acceptance and actually get the software developers need to spend money on implementing the cool new features so they will insert "PhysX" functionality into a game. Implementing such features takes up time, and thus has an effect on the overall budget of the programmers. With a limited userbase it was just not happening with a few exceptions here and there.
Late last year NVIDIA figured "okay enough is enough .. darn it". NVIDIA had invested heavily in this nice open standard called CUDA, and it should be relatively easy to move over and implement the PhysX API onto their CUDA ready GPUs. And that's where the advantage begins. So NVIDIA waved 30 million USD at Ageia, bought the company and hired their leading staff to get Ageia's PhysX API ported to CUDA which on its end can compute on the GPU.
From there on things got interesting. All new kinds of possibilities and ideas all of a sudden surfaced. More importantly, the best idea was this: any CUDA ready GeForce graphics cards, read: GeForce series 8 and newer, can now (starting from the 12th of August 2008) take advantage of PhysX without the need to install a dedicated PhysX card.
See, that GPU of yours can do PhysX in a multitude of options which we'll discuss today. So with a flick on your fingers, instantly (though slightly delayed) with the release of the new PhysX drivers in mid-August 2008, over 70 Million gamers now have the possibility to use PhysX on their machine.
Now let's revert back to my introduction where I mentioned that the userbase needs to be big for it to get broad industry (game developer) support. That user base all of a sudden has 70 million potential little PhysX GPUs ready and waiting to be used. To get you guys warmed up, NVIDIA is going to release a set of drivers and what is called, a PhysX pack next week. We'll have a look at some titles from that pack and I'll share with you my opinion on the PhysX experience anno 2008.
Today we'll have a look at what PhysX is about, what it does for you, how to install it, how you can use it. Yet most of all, the options available to you with several GPU combinations.
Next page please.
What is Physics?
Dictionary -- Phys¡Eics -- the science that deals with matter, energy, motion, and force.
So how does do physics calculations (which you hated so much in college) relate to gaming, you ask? Physics is all about how objects in your game move and react. Typically the GPU renders that gaming experience of yours, and in the past all physics were processed by the CPU (which needed to be limited as it eats up a lot of CPU cycles). In it's current design you need to understand, PhysX will not render graphics, it a the step lower in the pipeline. The complex motion of objects, elementary particles, fluids etc is based on a complex set of variables like gravity, density, wind and so on; general relativity.
That part is computed and defines the actual movement of an object, cloth, fluid or whatever floats your boat.
So then, up-to this point software physics already has been utilized in games. Ageia actually had a software based API available as well, that used the CPU. Havok is another good example of a Physics engine that uses the CPU.
So then; common physics computations are handled by the CPU, your processor, which is already loaded with the ever increasing demands of today's advanced games including game logic and AI. In short Physics calculations are responsible for more dynamic eye candy on that screen of yours, yet can now be computed on the GPU. And that has many advantages as we can't only do more complex calculations, the GPU is much faster doing it, and last but not least .. it saves CPU cycles (but eats GPU cycles).
PhysX processing is solely used to delivering physical gaming environments. Some of the features it's capable of doing are:
Explosions that cause dust and collateral debris
Characters with complex, jointed geometries for more life-like motion and interaction
Spectacular new weapons with incredible effects
Cloth that drapes and te
ars the way you would expect it to
Dense smoke & fog that billow around objects in motion
All that stuff can now be calculated over the GPU and is done much faster on it than a CPU. Take for example GRAW 2 -- the game is all about realism, and the developers knew very well that if they integrated hefty physics that the level of realism would be compromised. So although you can clearly see noticeable differences between the game with and without physics acceleration, the difference is extremely small. If you shoot at bricks you'll see some more debris, explosions seem to be a little more intense but noting a dual-core CPU couldn't take care off.
Notice that debris in the explosion, normally it would be missing. That's based on Physics calculations through PhysX over the GPU.
The Big Enigma - Performance
You'll notice that several articles available on the web with regards to NVIDIA PhysX are extremely focused on that fact that PhysX supposedly should increase the overall framerate. I'm afraid that is a very poor point of view for an article as physics was never intended to make your games run faster. under a very stringent set of circumstances it can help you on your framerate though.
Here's my take, in some situations PhysX can help you increase the overall framerate, but here's the enigma: generally seen PhysX will lower your framerate. Let's fire off some of my ideas on that:
If PhysX calculations are done over the GPU with an old (CPU bound) game, with a dedicated GPU you will offload the CPU and create more momentum for the CPU and then the framerate can be higher.
If PhysX calculations where done over the GPU with an new more modern (GPU bound) game, it's likely for you to have alower framerate, as your GPU will have to render more objects with for example particle rich explosions while the CPU load isn't lowered whatsoever.
See, the only thing PhysX does is calculate that movement or transformation of a set of vertices of an object - set of particles - water - smoke - whatever. If you shoot a gun at a barrel and it explodes into a thousand pieces. These pieces will mean, more tiny objects (vertices) to fill/texture/shade and render.
Initially this is why I did not like the first implementation of GeForce PhysX, I do not want my GPU to render PhysX AND rendering the game as it'll eat away a lot of computational power from that GPU, and thus overall performance. Since a GPU is way more than a CPU, that is definitely somewthing to think about.
But that has now changed ... let's move into the next chapter where I'll explain.
NVIDIA's GeForce PhysX implementation
I have to be honest here, all respect to the PhysX team for making this happen. NVIDIA has created three sets of circumstances on how you can choose to use your PhysX setup from within the PhysX driver, let's have a look:
Standard - one GPU renders both Graphics + PhysX (not ideal as you'll need a lot of GPU horsepower).
SLI mode - have two GPUs render both Graphics + PhysX.
Multi-GPU mode - GPU1 renders Graphics and GPU2 renders PhysX.
For me personally the last option is by far ideal as this is a situation where with any mainboard with two x8 or x16 PCIe slots you can use your old adapter as PhysX unit.
See, you do not need a power-house of a graphics card to deal with the PhysX calculations. Say you have an older GeForce 9600 GT or 8600 GT lying around and you upgraded towards a GeForce GTX 260 (or whatever). Then can you use your 9600 GT (or even 8600 GT) as a Physx unit and the GTX 260 for graphics.
Why do I like that so much? Because you can do something new with an old outdated graphics card and ... and you are not bound to an nForce platform since you are not running SLI mode.
What's there to dislike?
Well, if you choose the SLI or multi-GPU option, the obvious results of running a fairly high-end system with adding another GPU is obviously overall power consumption. With a second adapter even in IDLE your overall wattage will pretty easily rise to over 200 Watts. And when you have two GPUs at full load hard at work, it inevitably will increase the power consumption.
In our test case today we used an nForce 680i mainboard with a 3.0 GHz Core 2 Duo processor, a GeForce GTX 280 and a GeForce 9600 GT. Our maximum wattage peak (system wide) measured from the wall socket outlet was a hefty 432 Watt, so that's really a lot. With a higher end graphics card you'd be able to use PhysX and rendering on the same GPU. So that would be the more power efficient way to go.
Installation
For today's multi-GPU test I decided to use a passively cooled Sparkle GeForce 9600 GT for PhysX, it was still in the test rig due to this review. And since I did feel we should not at all be GPU limited to poop out some decent scores, I inserted a GeForce GTX 280, courtesy of NVIDIA, review here.
Now there's a thing you will need to be aware of in the Multi GPU mode, it's actually a Vista limitation but a second monitor must be attached to enable PhysX running on the second GeForce GPU. You must extend your Windows Vista desktop onto that monitor.
To bypass that issue, most monitors have a standard VGA and a DVI connector, right? Just use both. This limitation is related to the Windows Vista display driver model (WDDM). This limitation does not exist in Windows XP. In NVIDIA's upcoming drivers, they will be offering a workaround to improve the experience for Windows Vista users.
With a single card or two cards in SLI mode you will not have this problem.
Anyway, we have inserted the two cards, then we booted up windows, installed the new GeForce Forceware 177.79 drivers, then installed the PhysX drivers 8.07.18 and rebooted.
BTW small hint to NVIDIA - I feel the PhysX options should be moved and located into the NVIDIA control panel, everything under the big umbrella is the best way to go.
In Vista just select your monitor properties / display settings then extend the monitor to the second display (make sure the faster adapter is your primary graphics card with your monitor connected to it). Now under GeForce PhysX properties we have new options available. Let's have a look at them.
Select the GPU you want to have physics processed on, and we are now good to go my man. Check out some of the built in demos to get a better understanding of how and what Physics is all about.
We'll now swiftly walk through the PhysX Software pack that NVIDIA will release next week.
Ghost Recon: Advanced Warfigher 2
I was a little short on time, but I pretty much I wanted to focus on one of my favorite titles ever .. Graw 2. I installed the latest v1.5 patch (included in the PhysX pack), and just loved the fact that all my savegames were deleted afterward (sighs), and started playing my way into the level we always benchmark in. I was very curious whether or not I was able to spot an actual difference...
In-game I selected the highest possible PhysX quality settings -- PhysX Extreme, making sure we utilize all the power we have on-board.
The first thing I noticed, much more tree movement based on wind, loads of crap (debris) flying through the air again based on wind direction. Also dust clouds, which might even be soft particle based, were moving over the ground. Immediately the game got a little more immersive, though our framerate dropped a little overall, the experience is much richer than what we are used to. There's just much more happening on that screen.
As you can see the ideal combo for us was the GTX 280 + a dedicated 9600 GT for PhysX.
But in our case one GTX 280 is fine at 2560x1600 as well, as it's not a new game anymore. But that's a bit of the problem. We do not know how well new (GPU limited) games will perform.
In the case of GRAW2 it really is a step closer to something more realistic, definitely check it out.
Don't forget to enable PhysX Extreme .. a 9600 GT can easily handle that setting.
Warmonger
Included in the PhysX pack that NVIDIA will release is the full game, Warmonger.
Seriously, the minute you even start the tutorial and have PhysX enabled, debris everywhere, a nice moving cloths, instant difference. Now this version really is tailored for showing of PhysX though. It isn't that much of a game, but pimping PhysX is what it is all about with this release, that's for sure. It's still really cool to see and explore all the effects and you get to blow up though.
The cloth simulation here is pretty amazing. Though as a screenshot it sucks to look at.
When we disabled PhysX in Warmonger, we left the effects enabled, and they are now calculated over the CPU. It's incredible how much CPU overhead that takes. Now, normally your FPS would be much higher as physics stuff is disabled, but I figured it's a nice example of how well Physics can be done over a GPU. It's just much more efficient.
This title is included for free in the PhysX pack, again ... If you have a GeForce series 8 or newer card, check it out as it won't cost you a thing to try out.
Metal Knight Zero
I was a little surprised to hear about a title called Metal Knight Zero to be included in NVIDIA's PhysX pack. Much like Warmonger it is a free title to download. It definitely is a title where PhysX is really permitted to show off it's advantages. Metal Knight Zero in essence is an FPS like the other included titles. And hey .. again you get to blow up stuff. We ran the technology demo which had an included timedemo and pulled some results from it:
In this technology demo you will certainly like the fact that you can blow up gas containers. The physics outcome is a lot of dust particles, debris and surely a heap of smoke. 2000 particles can be released at once. Pretty neat.
Again when we disabled PhysX, we left the effects enabled. Yet they are now calculated over the CPU. The CPU overhead is large, however this was a very subjective test as we could not disable physics simulations whatsoever to see ho the game would perform without physics. Still, a nice demo to look at.
MKZ just like Warmonger, will be free to download when released. It is included as a non-playable techdemo with the PhysX Pack #1 next week on Tuesday.
Unreal Tournament 3
We'll now skip the benchmark sessions, as there hardly is any point to it. Each, any and every configuration will be different as will the framerate.
As expected the UT 3 engine fully supports PhysX already. NVIDIA will include an UT III PhysX Mod Pack with three PhysX-specific levels in it's pack. I do not have any numbers of this title, as .. I never purchased the game. I can not tell you how much I dislike the UT series and I am not spending any money on it. Sorry :)
Nurien
Some might say, it's just another way to look at pretty rendered women. The developer says this software will be a social network kind of game (like Second life) where you can dress yourself up, and you can actually check your clothing while moving around (PhysX accelerated). This demo is impressive for sure as you can design your own avatar. The engine is actually UT3 based, which explains the easy adoption of PhysX, and the developer immediately took advantage of it. At a recent editors day at NVIDIA the crowd went wild when they saw this demo. Whether that has to do with the impressive graphics or the fact that I think the girls boobs are actually PhysX enhanced (they bounce according to Einstein's law of gravity) doesn't matter. It's just impressive to see. When you try out this demo, observe the clothing simulation, curtains, hair and in the background the smoke particles.
Surely, if this demo doesn't do it for you ... PhysX will not be your thing.
The Great Kulu Demo
Ah yes, and then there is the great Kulu; who I refer to as the blob. Kulu is a technology demo created by the Ageia team in combo with NVIDIA. It's a disgusting monster that is contained in a secured facility. Kulu is surrounded by a PhysX enhanced forcefield. Kulu will react when you shoot at it and it's skin starts to shudder a little, Physx again. Obviously you need to set the monster free after which it'll hunt you down and you get to see all kinds ... of goo. I'll leave this in the dark right now.
Just check it out. A pretty fun demo and you can only wish to see features you'll notice in future games.
Fluids Tech Demo
In the PhysX pack you'll also find a really extraordinary Fluids demo. It obviously simulates how water will fall / travel from point A to B based on physics values like gravity, current, density, mass and so on. This 'Outdoor Scene' shows a miniature base with a massive pipe situated on top of one building. Here you can choose a flow of dark water, clear water, oil, based on your preference. You can also throw in some rigid bodies in the water (the balls) and see how naturally they react in the environment created.
Though not a game, this technology demo is a perfect example of what physics is all about. Make sure you check it out.
It's a very addictive technology demo. I really played with it for like half an hour and could not stop, it's fascinating for the mind. The physics simulation in combo with nice graphics is just breathtaking to play around with.
No comments:
Post a Comment