Physical Processing Chips (PPUs), or physics cards, like Aegia's PhysX I began to wonder if the eventual outcome of it's usage might its adoption into Blender as an alternative to Bullet (the dynamics engine), fluids, particles, and cloth. I asked a few of these aspects developers if they see PPUs being utilized in the future.With recent news of
When I asked Willian Germano (a Blender developer) and he had this to say, which I thought wrapped up the issue nicely:
It's still a little early to know where to go with this. There's Ageia's PhysX hardware, but solutions via GPU by nVidia and ATI are also expected... The ideal for open source apps like Blender is that an open API becomes available and well supported (sort of what happened with shaders a while ago). For exchange we should have COLLADA [Physics - Chapter 6 of the specification], but to actually access the physics hardware we'll need support in something equivalent to OpenGL. When that happens coders should be able to make Blender benefit from it, but that doesn't prevent something from happening earlier, as coders get access to the technology. Of course the license of the physics API used will determine if it can be included in Blender officially or not.
I then heard from Nils Thuerey - the man who brought fluids to Blender. I asked him specifically because calculations a PPU "might" do include fluid dynamics. And I say "might" because currently, fluids on PhysX is most likely SPH (smoothed particle hydrodynamics), and not so high quality. This is what Nils take on it was:
I read about the PPU capabilities in a few places, but from what I've understood it uses particle based methods. So, as the fluid solver in Blender uses a different grid-based solver, I don't see a way to easily make use of the acceleration.
Of course, all this talk of PPUs might be a flash in the pan since ATI and NVIDIA have been looking at alternatives for some time, specifically, using the GPUs to do physics. And as the Aegia PhysX is a proprietary system, its adoption in Blender (if at all) is probably not likely. Though Blender's game engine already has a physics engine abstraction, and this makes it very easy to add another engine like the closed source PhysX system. I'll leave the technical comparison of physics calculations on the PPU vs the GPU to the hardware forums, but it should be mentioned that the other dynamics systems using the GPU for physics has been demonstrated. Bullet and other open source physics (such as cloth and water) can make use of the GPU for physics in the future but not likely on a PPU because it is not programmable, and certainly not programmable on all Blender platforms. Also, The GPU can be programmed in several ways (e.g. GLSL), whereas the PPU cannot.