   swept collision with spatial partitioning
  For collision detection, I obviously need some sort of spatial partitioning system in order to keep reasonable speed. Currently I am planning to create K-d trees out of all my meshes and use a uniform grid and/or quadtree for my overall scene.I understand how to accelerate casting rays using these structures, but how does this work with swept collision detection, e.g. ellipsoids? Does anyone have any information or tutorials on this topic?Thanks.   
  For spheres and ellipsoids you might want to take a look  here.   ;  Thanks. Actually, I have implemented the algorithm described there, but I simply checked all triangles on each update. My question is more of how to go about implementing something like that using some form of spatial partitioning (kd tree, octree, etc.). An easy solution would just be to test everything in the bounding box of the object's motion, but is that really the best that can be done? Kd trees (which I bring up because those are what I am using) are useful for (eg) raycasting (which certainly will come in handy), but what about in terms of anything other than rays, like swept spheres?   ;  First check everyhting in the current node (that whatever is moving is in) as you normally do, if theres a hit (or multiple hits) then its going to be the closest and you can stop checking.Otherwise, check if your object enters any other node (you can check all of them and add them to some potential nodes list). Then check each node that gets hit as you have previously done. Store the closest collision and update if you find a closer one.I'm not very familiar with k-d trees but with an octree I did the following:Build a list of all the nodes I might be interested in, that is nodes that my moving object is in or may enter. This is quite fast given the naturure of octrees (aabb+fast culling).Go through the list of nodes, checking for collision with anything, store the closest.You can have multiple depth of detection after the initial node checking, AABB->OOBB->Sphere->Mesh etc. I had so few objects that I didn't need to store them in my tree but I did store all the faces of my actual world.   ;  you usually use a simpler bounding volume, such as a AABB (for a kd tree / quadtree). If your movement is swept, the volume would also take into account the swept vector to expand the bounding box.   