Game Physics and the PhysX PPU

One of the properties of graphics that made the feature a good fit for a specialized processor inside a PC is the fact that the task is infinitely parallelizable. Hundreds of thousands, and even millions of pixels need to be processed every frame. The more detailed a rendering needs to be, the more parallel the task becomes. The same is true with physics. As with the visual world, the physical world is continuous rather than discrete. The more processing power we have, the more things we can simulate at once, and the more realistically we can approximate the real world.

But as we’ll see, there is more to it than simply parallel compute power.

In the beginning there was collision detection, and it was good. And then came some semblance of gravity. Over the years, more and more objects in the game world have become interactive and affected by the world around it. Now the game physics world has culminated in the ability to bowl for oil drums with floppy dead people.

Fast, efficient, rigid body simulation has been well developed over the past couple years. A rigid body is basically a single unit that does not deform due to physical interaction. Think of two billiard balls slamming into each other: the balls retain their shape. If one were to drop a billiard ball on a beach ball, we would see a much different reaction: the beach ball would contract and expand a great deal. In current games, we would treat the beach ball, and indeed everything else, as a rigid body object.

Any rigid body object can have a number of forces acting on it at a time depending on the complexity of the simulation. Each object also has its own properties that are used to determine how these forces affect the object. This can scale from simple (mass and shape) to complex (like data to describe how shape and mass distribution affect angular velocity) depending on how accurate the developer wants to make things.

Not much interesting happens if a rigid body is sitting on flat ground and not moving with nothing touching it. Interesting things start to happen when either the user interacts with an object, or multiple rigid bodies interact with each other. We can easily see how these interactions could get complex. Think of bowling or billiards. Now think a little more complex. What happens when a rocket hits a brick wall and all the bricks go flying? Currently, games generally use tens to about a hundred rigid body objects in any given scene. This is somewhat limiting when the game calls for large scale effects or destruction.

So, here’s the real question. Why won’t Intel’s vision of multi and many-core processors be good enough to handle what a discrete PPU could handle?

Of course more parallel processing power will help no matter how it comes. But the deeper issue is data movement. The example AGEIA gave us to think about was a huge pile of bricks; when you push down on one brick near the top, forces are transferred to all other bricks in the stack. This may not be difficult on the scale to hundreds, but how about 30000 objects in a stack? How about keeping track of that while handling deformable (soft body) objects, fluids, and all collision detection in the scene?

The was all this needs to be handled is not simply with lots of parallel independent floating point power, but with lots of parallel floating point power connected by huge bandwidth. The fact that some initial Intel dual core chips will have to go off chip and back on to communicate, not as much performance is gained as possible. Certainly more parallelism is better no matter what, but it’s the high bandwidth that clenches the deal.

AGEIA’s background is in switched fabrics and networking hardware. The one of the keys to their chip is in the way PhysX is able to move high volumes of computed data internally. In order to find the forces on a brick in the middle of a stack that’s been kicked, the forces on all the bricks around it need to be updated.

Getting data into and out of the chip as fast as possible is important as well. For now, AGEIA is sticking with GDDR3 in order to benefit from the high volume (and lower costs) generated by the graphics market. It would be possible for the PhysX to benefit from higher bandwidth solutions like XDR, but for now it is important for AGEIA to minimize the cost/benefit ratio in order to succeed. The company philosophy at the outset is to follow what the graphics market does in terms of on card RAM.

We really don’t know a great deal about the intimate details of the architecture, but a light weight parallel floating point with lots of communications is a good start. We’ve had several guesses at how the hardware works that have been confirmed wrong. But to paraphrase Edison, eliminating all incorrect paths leads to the goal.

It does seem obvious that all physical properties of objects can be uploaded to the hardware initially (like a graphics card does with textures and such) and manipulated/updated every time something changes. We’ll be bringing out as many details as we can as soon as we are able.

Index Final Words
POST A COMMENT

70 Comments

View All Comments

  • azcn2503 - Saturday, April 8, 2006 - link

    Hello all, please get yourself over to http://www.overclockers.co.uk/acatalog/PhysX_Accel...">Overclockers UK to see a list of Ageia PhysX Accelerator cards avilable for preorder in the UK. Scan.co.uk are also listing this item, but they do not have any pricing, specification or availability details. I hope this gets you all very excited; this sort of thing gets me creaming, I tell you. Reply
  • AlphaNex - Monday, May 16, 2005 - link

    I have no problem buying something for my PC thats only used for gaminmg. Im a computer technician for a living and my home PC is used 99% for games, my radeon 9800 does nothing that a 30 dollar ati Rage or something like that cant do.... except for playing games and i paid alot more for it then granny did her intergrated board on her dell. Id buy something like this in a heartbeat if it delivered on its promises. Just imagine true, realisitc physics in a game. This could literally be the Next Big Thing for gaming. Im excited thinking about the possibilities. Reply
  • blackarc - Sunday, March 27, 2005 - link

    I am SOOOO F'ing excited!

    I'm always at least one generation behind on the GPUs simply because pretty doesn't do everything for me... But physics? HuuuHaa!
    Reply
  • Disorganise - Friday, March 18, 2005 - link

    #53 I've yet to use my steering wheel in anything else other than games - and even then only a very small percentage of games.

    Personally I think this thing is very promising. Imagine being able to map the oil, petrol, brake fluid etc, inside all the relevant machanical bits for the race car you're driving....and then up that for all the guys you're racing against and even the proposed card is looking like it'll struggle.
    Add precise tire wear, roads which are made of little stones and tar etc etc. The level of detail 'missing' from todays games is huge.
    Imagine a game where minor flaws are possible in the hardware - an engine or gearbox blows and spews oil and water everywhere, perhaps igniting into realistic flames. or the knife you keep hacking with in half-life becomes blunt and useless, or snaps off the tip. With FPS, damage caused by shooting at walls etc becomes genuine dents and holes accoring to realistic physics and the composition of the bullet and wall.

    The possibilities are incredible. And here's a thought regarding the cost....spend a bit less on the CPU - it won't be working as hard....

    Cheers
    Disorganise
    Reply
  • virtualgames0 - Friday, March 18, 2005 - link

    While physics have gone far in today's games, there is still a LONG WAY to go until it's really realistic.

    You can't blow up walls now. You can't terraform. Most of the stuff in the game world is static and cannot be changed.
    This physX PPU will change that, and will finally allow the gamer to truly interact with the world.
    Sure it'll cost money for these features, but it's still your choice if you want to buy it or not. Saying it sucks, and should fail is ridiculously dumb.
    Reply
  • jediknight - Tuesday, March 15, 2005 - link

    Hmm..
    /me imagines a "MEGA" cell processor..

    CPU as the main hub, connected to GPU, SPU (sound processing unit), PPU, etc. cells..

    all on ONE chip. That's the holy grail, folks..
    Reply
  • patrick0 - Monday, March 14, 2005 - link

    #52, since when you don't need physics for some effects? Reply
  • fitten - Monday, March 14, 2005 - link

    ...and think just how much faster F@H, SETI@HOME, and many of those other distributed computing apps will be if they can get their hands on this :) Reply
  • DerekWilson - Sunday, March 13, 2005 - link

    For science and engineering, we've again got the problem of needing a more direct interface. The functions implimented in hardware via the NovodeX SDK will still be "game physics" ... kinda like "game graphics" ...

    You would never want to use the Unreal Engine as the realtime 3d part of something like ProE or Solidworks.

    Just the same, very acurate physics simulations will want to use different (more precise and slower) algorithms.

    This is why we're calling for a lower level API rahter than an SDK -- note that both games and high end workstation apps can build their realtime 3d engines with the same API (opengl or directx).
    Reply
  • stephenbrooks - Sunday, March 13, 2005 - link

    I think the molecular dynamics people will start to seriously like this technology once the physical equivalent of Shaders come out. I.e. sub-programs defining how each object reacts to ones in proximity to it, while the PPU does the collision detection and kinematics. Reply

Log in

Don't have an account? Sign up now