[ODE] Future of physics processors and IM API
David Black
dblack at fastmail.fm
Sat May 14 12:00:38 MST 2005
Hi,
I have been thinking about physics hardware and how it might be accessed
through an API effectivly.
The AGEIA chip looks interesting, except what worries me is that novodex
is a little too high level and as a result seems less flexible.
I can see a number of levels for physics hardware(just considering the
joint solver for now).
The simplest would be a hardware implimentation of a gauss seidel or
jacobi iterator(or even something smarter, like a hybrid
iterative/dantzig solver or multi grid inspired method). This would be
relativly simple to create an API for, ie store matrices in shared
memory and issues requests to process them, with either an error
tolerance or set number of iterations. Then recieving the results some
time later.
The next level in sophistication would be a chip which can perform the
above, but in addition has the ability to build jacobians(and associated
parameters) from a fixed set of joint descriptions(eg contact, ball and
socket, slider etc).
After this you get to the next level where you have 'physics shaders',
in a similar way to GPUs. There function is to build the jacobians(etc)
on the PPU while being passed joint parameters from the user.
Then there is the integrator, there are many choices for this, but I
presume something fairly standard would have to be chosen, eg RK4 or
semi implicit euler etc. Again some sort of shader type language could
be used, but I am not sure it is so necasery for the integrator.
Following on there is group/island managment and sleeping/autodisable.
Which is more difficult. The higher you go the more policy you need to
put in the hardware and the less flexible it becomes.
I just hope AGEIA (or someone else) comes up with a physics chip which
can be accessed at these levels, rather than only through something like
novodex(which is great, but not suited to everyones needs and I am sure
given the chance people could improve upon it).
I also wonder if the AGEIA chip isnt just novodex in the firmware on the
card and executed by a CPU with some additional hardware. (Anyone
remember rendition graphics cards?). I just dont think such an approach
is very scalable...
What are peoples thoughts?
David
More information about the ODE
mailing list