hansen@mips.COM (Craig Hansen) (01/27/88)
In article <2001@elrond.CalComp.COM>, dennis@elrond.CalComp.COM (John R. Dennis) writes: > I would like to implement extent checking to speed up 3D clipping. Our > implementation allows the user to specify any transformation matrix and any > number of arbitrary clip planes. Therefore after transformation an objects > bounding box can be any 6 sided convex polyhedra. The question that must be > answered for trival accept/reject clipping on a per clip plane basis is: > does this polyhedra lie completely on one side of a clip plane and if so on > which side? > > Does anyone know how to efficently compute the answer to the extent visibility > question given these parameters? If the clip plane is at an arbitrary orientation, a check of which side a point is w.r.t. the clip plane will require a computation involving all coordinates. If the clip planes define a convex polyhedra (this could be with as few as four clip planes, or as many as six clip planes, depending on their orientation), you would do better to consider all the clip planes at once, so establish the bounds of the polyhedra representing the clip planes, and then use extent checking to to the trivial/accept reject. A scan of the convex polyhedra for minimum and maximum values in each coordinate gives a bounding box to which you can check the input data against, and the clip polhedra can be reverse-transformed from the clip space back into the object space (prior to turning it into a bounding box, if you want the smallest possible bounds), so you can do it before transforming all the points in the input objects. -- Craig Hansen Manager, Architecture Development MIPS Computer Systems, Inc. ...{ames,decwrl,prls}!mips!hansen or hansen@mips.com 408-991-0234