I've been working on a new collision detection system for soya. The
objective is to get a fast and easy to use collision detection system
for games that don't require super accurate physics (FPS, RPG...). For
accurate physics soya already implement ODE :)
My system is pretty much like what Quake 3 does (but a bit more
complex). Right now soya does raypicking on model's faces. My idea is to
encapsulate 3D objects into simple bounding volumes called brush and to
perform collision detection on those. This is faster than raypicking
against model faces (since models can have lot of faces). This also
allow more complicated test than raypicking like sphere tracing, capsule
tracing or box tracing (let's say than raypicking == point tracing, a
point moving along a line until it hit something, then you get the idea
of what sphere, capsule and box tracing are...). Finally it's handy when
you want to perform simple collision detection against complex shaped
objects. For example you have a table with a top and four legs, and you
don't want your player controlled character to go through it. Doing
raypicking against the table model can be tricky, if the ray is to low
it will go between the table's legs and if it is to high it will go over
the top. With this system you can encapsulate the table into a box
shaped brush and perform raypicking on the brush instead of the table model.
I've already made some experimental code in soya do do that, it works
pretty well. I think it's worth to implement it completely. What do you
think ?
Critics and suggestion are welcome :)
Souvarine.
_______________________________________________
Soya-user mailing list
[email protected]
https://mail.gna.org/listinfo/soya-user