What are some heuristics that are commonly used when answering these questions? Can we make use of bounding box approximations in some way here?
abiagioli
@zbp Our next lecture will be all about accelerating geometric queries! You're right that a very common optimization is to do a "broad phase" collision check with enclosing volumes that are easy to check (such as axis-aligned bounding boxes). There's much more that you can do here, though-I'll save the spoilers for Wednesday :)
silentQ
For simulations, it seems that more information than just position of triangles would need to be stored (like velocity, acceleration, etc). With this information you can calculate things like the force of a collision. Are there common data structures for storing this kind of info all together? Does knowing things like movement help anticipate collisions so not all triangles have to be compared to all other triangles every frame?
keenan
@silentQ Data like velocity, acceleration, etc., can simply be stored on the data structures we've already studied (half edge, incidence list, etc.). It's no different from, say, colors or texture coordinates: you can just store a value at each vertex, face, etc., depending on exactly what you're doing.
As for whether you can be clever about using dynamical information in collision detection algorithms: absolutely, and it gets really deep here. For instance, check out this paper on Asynchronous Contact Mechanics which uses a "kinetic data structure" to track collisions; the video at the bottom of the page gives a nice explanation.
Kuragama
I imagine that in a lot of physics-based simulations, the collisions between meshes that occur are not surface level collisions so often as intersections and overlaps (assuming we update the physics assuming no resistance before checking collision). Is there a good strategy for, if an object is going to intersect another mesh, having it adopt the most natural position that follows based on its motion without it overlapping the mesh (i.e. with only surface contact)?
ljelenak
When I look up videos of cloth simulation, I always wondered if they mesh moved independently (was each elements next move calculated separately) or do elements of the mesh "pull" on each other?
keenan
@Kuragama Collision response is a whole different ballgame, that goes beyond just collision detection). Some good perspective on this subject can be found in the work of folks like Ron Fedkiw, Robert Bridson, Eitan Grinspun, and many others who I'm forgetting here!
What are some heuristics that are commonly used when answering these questions? Can we make use of bounding box approximations in some way here?
@zbp Our next lecture will be all about accelerating geometric queries! You're right that a very common optimization is to do a "broad phase" collision check with enclosing volumes that are easy to check (such as axis-aligned bounding boxes). There's much more that you can do here, though-I'll save the spoilers for Wednesday :)
For simulations, it seems that more information than just position of triangles would need to be stored (like velocity, acceleration, etc). With this information you can calculate things like the force of a collision. Are there common data structures for storing this kind of info all together? Does knowing things like movement help anticipate collisions so not all triangles have to be compared to all other triangles every frame?
@silentQ Data like velocity, acceleration, etc., can simply be stored on the data structures we've already studied (half edge, incidence list, etc.). It's no different from, say, colors or texture coordinates: you can just store a value at each vertex, face, etc., depending on exactly what you're doing.
As for whether you can be clever about using dynamical information in collision detection algorithms: absolutely, and it gets really deep here. For instance, check out this paper on Asynchronous Contact Mechanics which uses a "kinetic data structure" to track collisions; the video at the bottom of the page gives a nice explanation.
I imagine that in a lot of physics-based simulations, the collisions between meshes that occur are not surface level collisions so often as intersections and overlaps (assuming we update the physics assuming no resistance before checking collision). Is there a good strategy for, if an object is going to intersect another mesh, having it adopt the most natural position that follows based on its motion without it overlapping the mesh (i.e. with only surface contact)?
When I look up videos of cloth simulation, I always wondered if they mesh moved independently (was each elements next move calculated separately) or do elements of the mesh "pull" on each other?
@Kuragama Collision response is a whole different ballgame, that goes beyond just collision detection). Some good perspective on this subject can be found in the work of folks like Ron Fedkiw, Robert Bridson, Eitan Grinspun, and many others who I'm forgetting here!