I thought I'd start a thread where we can define and discuss any current best practice or methods.
I've knocked up a few testing scenarios and there's a lot of ways to approach this.
Some collision methods work best for bullets, lasers and the like where as others are needed when working with environments or many-to-many checks.
For instance, right now my current game needs a selection of 3D collision techniques and I have a number of options about how to implement them.
1. Basic environment / proximity checks - Stage 1: the "initial check filter"
So, I'll be using a checkerboard approach here, to filter out most of my detail checks. I only need to operate this on the X and Z axis.
There are other options, like basic distance checks, but I am currently using a model where I keep track of everything in the arena at grid positions of tile size (x,z) and some items can occupy the same square without invoking 2nd stage collision checks.
2. Object->object collision - Stage 2: the "3D equivalent of 2D pixel perfect collision"
We could use ray casting, but it does seem quite slow to me if you aren't careful (e.g. only look ahead 1 or n frames to cast your ray) - and it doesn't cater well for complex object->complex object*. This can and will be fine for me with bullets/lasers and reasonably fast moving, simple geometry objects.
For characters and complex shapes, we could use the Bullet engine by setting up some zero mass objects (both as bounding boxes and the actual collision object shape). This is what I'm about to set up my next test bed for.
3. Of course we don't need to check everything, every frame. However, I'm finding it difficult to know if my collision shapes are correct. It would be really useful to have some visualization of collision shapes in 3D. When (if at all) will this be in?
So, to my main question; I need to use shapes then, because of complex object->complex object so is setting up all complex collision objects (for the precision, final check) can only be done currently as a physics object?
It seems a bit odd, but I'll go along with it then, if I need to physics enable an object, just to get access to better collision detection.
* I originally thought that sphere-casting was a spherical distance check (or a raycast in all directions), but my current understanding now tells me that the "sphere" part is that it's just a single ray which is made into a bigger cylinder, not that the entire sphere is checked? Clarification of this would be most beneficial. If it is a cylinder, what parts of the cylinder are checked?
[edit] Sorry - can a mod change the title and take out "physics" as I meant general 3D collision