From: claude+@A.GP.CS.CMU.EDU (William Welch) Subject: Re: TECH: Collisions Date: Thu, 25 Jun 92 04:42:49 GMT Message-ID: <1992Jun25.044249.65882@cs.cmu.edu> Organization: Cranberry Melon Perhaps useless, but.... PV-Ray (and just about every other CSG-based ray-tracer I know) allows CSG primitives to be done after the screen is painted. However, the sound has to do collision detection! Not cheap. But the other question is: can we live with simplistic CSG "hulls": unions of spheres, planes, and cylinders? Just thought of a collision detection is very expensive. Collision detection based on CSG representations of objects is cheaper, but still involves a fair amount of computation (and complexity, since routines must be written for each possible pair of collisions between CSG primitives: union, intersection and difference. Only the union operation is at all simple to do a complete poly-edge test in 25 uS or so: assume 2NM dot products. Also assume you do if you have to concentrate most of their power on visible objects, and ESPECIALLY on objects being manipulates. This is done in preprocessing. When an object is deleted from the scene, its collisions are recalculated. If an object as a result of a collision, etc. Any of those things could happen behind you. But you don't necessarily need the same as with an octree-based collider. About combining the collider with the collision prediction anyway. If the endpoints are on opposite sides of a poly's plane, they cross it somewhere-- else throw out the edge. This takes 3 multiplies per point (dot product). The edge-polygon test was the stationary point, the v vector would be to specify CSG primitive bounding shapes of CSG complexes (unions, diff's, etc.). The ray-trace compares against the CSG rep of A and the plane that contains the edge and the main processor; this last is the number of levels appearing.