I am trying to use ode for only collision detection. I am okay with it “uncolliding” the nodes but that is optional. I am having trouble updating the ode collision solids with my own movements…I have tried body.setPosition/setQuaternion but the collisions do not line up…All it is is several spheres that I need to move each frame but There are lots of collisions and panda’s builtin collision can’t handle it. Calling the quickstep function or not does not make a difference (although it runs about 2x faster when calling quickstep…?) The code is rather convoluted so it is hard to post…
basically I would like to know how to use the collision detection part of ode but not the physics side.
setPosition/quaternion should work.
I personally alter the position/rotation of the actual 3d model first, and then pass that to ODE. Also, every frame, I’m passing positions back from ODE to Panda.
By not using autoCollide - rather OdeUtil.collide and space.collide, and then simply don’t set up contact joints.
There is a small conflict in what you ask:
- Yes its possible to use only collision detection from ode but that means nothing is moved, only checks are made wether or not two odegeoms intersect/collide.
If that is what you want then use what pro-rsoft wrote.
2.If you want to detect collisions and move objects based on the collisions with ode then you cant do that without the physics(unless you write your own collison resolving)
If that is what you want use autoCollide or write your own phys imitation on top of point 1.
Panda is slower than ode, but if you need collision primiteves to collide into other collision primitives(like sphere into sphere) then panda can handle that pretty well.(i got 500+ spheres on screen that all collide into each other)
Panda is a lot slower in collision primitive vs trimesh geometry(with high poly count, even with octree enabled).
Pandas built in collision produces less faulty behaviour than odes.(I havent seen a single mistake with pandas collision but i see some with ode, ex. solid falls through ground even thou it should not)
Im using ode collision and wrote my own collision resolving mechanism(a very simplified one, as i dont need more)