Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site unc.unc.UUCP Path: utzoo!watmath!clyde!bonnie!akgua!mcnc!unc!glassner From: glassner@unc.UUCP (Andrew S. Glassner) Newsgroups: net.graphics Subject: Re: Constant-Time Ray-Tracing Message-ID: <149@unc.unc.UUCP> Date: Thu, 15-Aug-85 10:42:50 EDT Article-I.D.: unc.149 Posted: Thu Aug 15 10:42:50 1985 Date-Received: Sun, 18-Aug-85 04:07:09 EDT References: <1063@dual.UUCP> <1723@saber.UUCP> <1312@utcsri.UUCP> Reply-To: glassner@unc.UUCP (Andrew S. Glassner) Distribution: net Organization: CS Dept, U. of N. Carolina, Chapel Hill Lines: 24 Summary: The basic idea is to subdivide space recursively into an octtree, until each node of the tree contains no more than some small number of objects. You then trace a ray by determining what node it is in, and only intersecting against the objects in that node. If you hit an object in that node (and you usually do), you know you don't have to test against any more objects. If you don't hit something in that node you project into the next node and try again. Since each node contains a number of objects less than or equal to some small number (like 5), you essentially test each ray against only that number of objects; hence the term "constant time". It's really not correct to say constant time, though; that's an optimistic viewpoint that is often defeated in real scenes. I refrained from giving the algorithm that name in the original publication; I guess the temptation was too great to resist in the long run. Details of the "constant time" ray tracer may be found in my paper "Space Subdivision for Fast Ray Tracing" in the October 1984 IEEE Computer Graphics & Applications. -- -Andrew Andrew Glassner glassner@unc decvax!mcnc!unc!glassner