Transcript
Page 1: Ray Coherence Between a Sphere and a Convex Polyhedron

Volume 11, (1992) number 2 , 163-172

Ray Coherence Between a Sphere and a Convex Polyhedron

Tamas Horvath, Gabor Marton, Peter Risztics and Laszlo Szirmay-Kalos

Technical University of Budapest, Department of Process Control, Muegyetem rkp. 9/R, 11 11 Budapest, Hungary

Abstract Using the two ray coherence theorems of Ohta and Maekawa the computation time of ray tracing algorithms for scenes of spheres and convex polyhedra can be reduced considerably. This paper presents further theorems which, together with the first two, may enable further reduction in computation time.

Key words: ray tracing, ray coherence theorems, analytical geometry of convex point sets, convex hull algorithms.

1. Introduction

As has already been mentioned by a number of authors (e.g. Whitted1, Fujimoto et al.2) almost all of the computing time in ray tracing algorithms is consumed by ray-object intersection calculations (75-95 % depending on the complexity of the scene). In the case of a brute- force ray tracing algorithm, whenever a ray is traced it has to be compared with each object of the scene in order to find the intersection point closest to the origin of the ray. One way to decrease the number of intersection calculations is the space subdivision (octree-) tech- nique2 which traces a ray incrementally through the space cells until it reaches the surface of an object. Another method is the direction technique of Ohta and Maekawa3.

This latter technique i s based on ray coherence theorems. Such a theorem comes from the simple fact that any direction vector can be uniquely represented by a point on the unit sphere around the origin of the vector i.e. the point at which the vector intersects this unit sphere. For two convex objects in the space, points corresponding to the directions of all the rays originating on the surface of one object and intersecting the other may be represented by a convex two-dimensional point set on the surface of one common sphere. In order to make this article self-contained, we quote the descrip- tion of the algorithm of Ohta and Maekawa from their article6.

“To describe the algorithm, the following assumptions are used:

1) There are N objects. Each object is bounded by a sphere or a convex hull. Objects are numbered 1 to N.

2) There are M ray origins. Ray origins may be the eye, light source, or reflective/refractive objects. Each ray origin is bounded by a sphere or a convex hull. Ray origins are numbered 1 to M.

3) The direction space around each ray origin is divided into D sub-directions. Sub-directions are numbered 1 to D.

4) There is a two-dimensional array of lists of objects O[1 : M] [1 : D].

Then the pre-processing algorithm is as follows :

Step 1.1)

Initialize all elements of O to null.

Step 1.2)

For each ray origin j, repeat the steps 1.3, 1.4 and 1.5.

Step 1.3)

For each object i, repeat the steps 1.4 and 1.5.

Step 1.4)

Using ray coherence theorems, compute the subset of the direction from the point of the bounding volume of ray origin j to the point of the bounding volume of object i. If bounding volumes are spheres, is a circle, if bounding volumes are convex hulls, is a convex hull.

Page 2: Ray Coherence Between a Sphere and a Convex Polyhedron

164 T. Horvath et al. / Ray Coherence

Step 1.5)

For each sub-direction d, which has non-empty in- tersection with Si,j, add object i to O[j] [d].

Step 1.6)

Compute the minimum distance between ray origin j and object i and sort the elements O[i][d] by the increasing order of

After the completion of the algorithm, we have defined the array of lists of objects O. All objects which may be seen from the ray origin j in the sub-direction d are contained in O[j][d].

The ray object intersection algorithm is very simple. The following steps are repeated for each ray:

Step 2.1

Compute the index j of the ray origin and the index d of the sub-direction of the given ray.

Step 2.2

Perform the actual ray object intersection calculation for the objects in O[j, d] from the top until:

a) There are no objects left.

b) the distance between the nearest intersection point and the ray origin is shorter than (i is the index of the currently tested object).”

Ohta and Maekawa have also shown3 that the number of elements of a list O[i][d] is O(1) if the number of direction classes is chosen properly. From this it follows that, although the overall time complexity of the algorithm is (because of the pre-processing step), where N is the number of objects, the time complexity of the tracing step is (nearly) constant if the number of sub- directions is chosen properly.

Ohta and Maekawa’s first ray coherence theorem is valid for two spheres while the second one is valid for convex polyhedra. No theorem was introduced for a pair consisting of a sphere and a convex polyhedron. Ohta and Maekawa used surrounding spheres of polyhedra when rendering such mixed scenes but it is not optimal in the sense that the set of all possible directions for a sphere-polyhedron pair computed in this way is always larger (i.e. has a larger area on the surface of the unit sphere) than necessary, especially when the polyhedron is “ long and thin ”.

A quite similar algorithm for exploiting ray coherence is the ray classification method used by Arvo and Kirk4. It is based on the fact that a ray can be represented by a point in where the first three coordinates contain the origin of the ray and the other two its direction. This way the set of all possible rays for a bounded scene is a bounded subset of and to any subset of a list of

objects can be assigned which contains all the objects which are intersected by any ray of the subset. Arvo and Kirk4 used a hierarchical structure resulting from recursively subdividing this subset and the corresponding list of objects. Subdivision is made not in a pre-processing step but during the tracing step, in an adaptive way. When intersection calculation is to be performed for a given ray, the ray is first classified into the subset of containing it and then the corresponding list of objects is considered. If this list contains too many objects then the subset of rays is subdivided. Subdivision is repeated until the number of objects on the list does not exceed a given threshold. Arvo and Kirk4 have reported that this gives “an extremely powerful culling function that is, empiri- cally, relatively insensitive to environment complexity ”. This can not be stated about the algorithm of Ohta and Maekawa because of its pre-processing step having time complexity with respect to the number of objects. The advantage of it is, however, that if the candidate list O has once been computed, then it can be used for repeated tracings for animation by only slightly re- calculating it. Recalculation has to be made only for those objects that have been moved from their previous position.

2. Ray Coherence Theorems

We will use the following notations in the subsequent sections.

O denotes the origin of our coordinate system in

is the vector from the point to the point

is the distance between the points

is the unit (direction) vector pointing

is the sphere with centre o and radius r, i.e. the

is the (2-dimensional) surface of i.e. the

from p towards q.

set of points p for which

set of points p for which

is the intersection point of and i.e. this is the conversion from a direction vector into the corresponding spherical point.

is the unit (direction) vector from the origin O to the point i.e. this is the conversion from a spherical point into the corresponding direction vector.

is the (ordinary 3-dimensional) convex hull of points i.e. the point set which has the following three properties :

Page 3: Ray Coherence Between a Sphere and a Convex Polyhedron

T. Horvath et al. / Ray Coherence 165

(H32) (H33) is the minimal set having (H31), (H32).

is the (spherical 2-dimensional) convex hull of points i.e. the point set

which has the following three properties :

and

Then

(H21) (H22)

(H23) is the minimal set having (H21), (H22).

Note, that property (H22) is equivalent with the property defined by Ohta and Maekawa :

(H22a)

is the opposite point to the point i.e. the

with respect to the origin.

is the spherical distance between the points a, b E

i.e. the angle between the vectors Note, that for any and

is the spherical circle with centre and radius i.e. the set of points b for which

is the (spherical two-dimensional) convex hull of point sets i.e. the point set which has the following three properties :

see Ohta and

2.2. New Results

THEOREM 3 (ray coherence from a convex polyhedron

point which results from the point a by central mirroring to a disjoint sphere) : Let be a sphere and a polyhedron with

and

Then

PROOF: Let us use the notation

(H21’) (H22’) the same as (H22) (H23’) is the minimal set having (H21’), (H22’).

for the spherical circles corresponding to

with the substitution

is the opposite set corresponding to the point set (i) For the vertices of P consider Theorem 1 asin denotes arc sin.

2.1. Previous Results and

THEOREM 1 (ray coherence between two disjoint spheres) : Let

This way we get be two spheres with

and

Then

PROOF : see Ohta and Maekawa3.

From this and property (H21’) of spherical convex hulls for point sets it follows that

(ii) For non-vertex points p E P we use induction on the number of vertices. There are two cases, as follows.

(ii. 1) For n = 2. In this case P is a straight line segment between and any point can be written in the form

THEOREM 2 (ray coherence between two disjoint convex polyhedra) ; Let be two polyhedra with

Page 4: Ray Coherence Between a Sphere and a Convex Polyhedron

T. Horvath et al. / Ray Coherence 166

and for any

Furthermore

with the properly chosen coefficients

and since

hence

Conferring it with property (H22) or (H22’) of convex spherical hulls yields the validity of the statement

for the case of n = 2.

(ii.2) For a general n, assume the validity for As is known (also used e.g. by Ohta and

Maekawa), any point p E P can be written in the form

with the baricentric coordinates where

Since n > 1 we can renumber the vertices and the corresponding baricentric coordinates so that

With

and

p can be written as

Since

by their definition,

i.e. p‘ i s a point of the convex polyhedron spanned by the vertices From this and the inductive as- sumption

Moreover, as obviously

we get

From (i)

and in the very same way as in (ii.1) we can write for any that

Conferring the above three statements with property (H22) or (H22’) of spherical convex hulls yields

THEOREM 4 (ray coherence from a sphere to a disjoint convex polyhedron) : Let be a sphere and a polyhedron with

and

Then

PROOF: Since

we get for the corresponding spherical points that

which together with the validity of THEOREM 3 completes the proof.

3. Exploiting the New Ray Coherence Theorems

The main problem when exploiting THEOREM 3 or 4 of Section 2 is how to compute the convex hull of spherical circles. This section is devoted to this problem.

Let us first define some more necessary notation.

p, q, . . . will denote not only points of but the vectors

(i.e. the vectors from the origin to the point), too.

is the angle between the vectors p, q. Note, that and

Page 5: Ray Coherence Between a Sphere and a Convex Polyhedron

T. Horvath et al. Ray Coherence 167

is the (half-) cone with axis p and angle i.e. the set of points for which

is the plane passing through the origin with normal vector n, i.e. the set of points for which

is the planar halfspace of points for which

is the angle between the plane and the vector p. This i s a signed value, i.e. it is positive if

and negative if

is the spherical dihedron deter- mined by the planes on the surface of

i.e. the set of points 1) for which and Note that the boundary of a

spherical dihedron consists of two main arcs, both being the half of a main circle.

is the supporting spherical dihedron of spherical circles i.e. the dihedron which has the fol- lowing properties :

A sufficient condition for the existence of such a dihedron will be given in LEMMA 1 in Section 3.1.

main arcs. is the boundary of i.e. it consists of two

is the boundary of i a one-dimensional closed circle line on

3.1. Supporting Dihedron to a Pair of Spherical Circles

LEMMA 1 (on the existence of supporting spherical dihedra): Let be two spherical circles with

If

(i.e. the two spherical circles lie on one hemisphere) and

and

(i.e. none of the two circles contains the other one) then exists. the supporting spherical dihedron

PROOF: We will construct a dihedron, then prove that it has properties (D21), (D22).

(i) Construction. Condition (3.1.1) of the lemma is equivalent to

hence the three condition statements in the lemma are equivalent to the following ones :

Let us now define two spherical circles, namely with

which are one-dimensional closed circle lines. Conditions (3.1.4), (3.1.5), (3.1.6) imply that and have real intersection, i.e. they intersect each other in exactly two spherical points which we denote by Then we choose the vectors so that

and define our spherical dihedron as

(ii) Properties (D21), (D22). From the definition of the two circles and the vectors

This can be rewritten as

which is equivalent to properties (D21), (D22).

Using the notations

note that if the conditions (3.1.1), (3.1.2), (3.1.3) of LEMMA I hold then the point set

consists of exactly four points which are the spherical points on where the boundary of the sup- porting dihedron supports the circles This point set will appear in the next lemma.

LEMMA 2 (on the convex hull of a pair of spherical circles) : Let be two spherical circles with

Page 6: Ray Coherence Between a Sphere and a Convex Polyhedron

168 T. Horvath et al. / Ray Coherence

and let the following condition hold: facts and from it follows that intersects A, in the interior of In other words, if one moves from the point a on A, towards b then one first enters A (and then possibly exits i.e. (i.e. the two spherical circles lie on one hemisphere).

a) If

then

b) If

then

(ii.4) In a very similar way to (ii.3) it can be proven that if one moves from the point a on A, towards b one always enters A before exiting and always enters before exiting A, i.e.

(iii) Property (H23’). Let a E B be any point of B. The aim is to show that the point set B\{a} does not have properties (H21’) and (H22’). There are two possible (overlapping) cases :

(iii. 1)

(iii.2)

mal. PROOF of a) : This follows trivially from the convexity (as of

mal. PROOF of b): can be considered as

with vectors

and hence is mini-

and hence is mini-

3.2. Computing the Convex Hull of Spherical Circles

LEMMA 3 (on the convex hull of spherical circles) : Let be spherical circles with

Let us use the notations

and let the following condition hold :

(i.e. the spherical circles lie on one hemisphere).

Then (the points are the four sup- porting points) so that

with

We will prove that the point set B has properties (H21’), (H22’) and (H23’).

(i) Property (H21’). This comes from the construction of B.

(ii) Property (H22’). This property is equivalent to (H22a) and this latter will be proven here. Let a, b E B be any two points of B and A, be main arc (shortest path)

where

with

between a and b. The aim is to prove that B. There PROOF : Condition (3.2.1) in the lemma that for each pair of circles the corresponding dihedron exists. are four possible (overlapping) cases:

(ii. 1) comes from the con- Then using the notation vexity of

(ii.3) The main arc be- tween the two supporting points a,,, on one hand is a chord of the circle hence and on the other

we will prove that the point set B has properties (H21’), (H22’) and (H23’).

(i) Property (H21’). This comes from the construction of B.

hand from convexity (H22a) of A. From these (ii) Property (H22’). Let a, b E B be any two points of B

(ii.2) comes from the (H22a) of A.

Page 7: Ray Coherence Between a Sphere and a Convex Polyhedron

T. Horvath et al. / Ray Coherence 169

and A, be the main arc (shortest path) between a and b. The aim is to prove that There are three possible (overlapping) cases :

(ii. 1) As obviously and from LEMMA 2

A, E B.

(ii.2) comes from the convexity (H22a) of

(ii.3) In a very similar way as in (ii.3) of the proof of LEMMA 2 if one moves from the point a on A, towards b one always enters before exiting i.e.

(iii) Property (H23’). The proof is the same as in (iii) of the proof of LEMMA 2. Let a E B any point of B. The aim is to show that the point set B\{a} does not have properties (H21’) and (H22’). There are two possible (overlapping) cases :

(iii. 1) and hence is minimal.

(iii.2) is minimal.

The above lemma suggests an algorithm for computing the convex hull of spherical circles. In fact, only deter- mining the convex hull H ; needs computation. is the convex hull of the supporting points for all the possible pairings of the n circles, hence the number of points in the set for which the computation is to be performed is N =

A spherical version of Graham’s algorithm [3] would compute their convex hull in i.e.

time. However, there exists a better algorithm, as stated in the following theorem.

THEOREM 5 (on computing the convex hull of spherical circles) : Let be spherical circles with

and let the following condition hold:

(i.e. the spherical circles lie on one hemisphere).

Then their convex hull

can be computed in time.

PROOF : Note, that the boundary of the convex hull of spherical circles consists of either one closed circle line (when one circle contains all the other ones) or alter- natively parts of circles (circular arcs) and main arcs, and the convex hull can be given by its boundary as well. Note furthermore, that the boundary of the convex hull is a subset of the boundaries of the convex hulls for all the possible pairings of circles. First we give an algorithm

which retrieves this subset and then prove that it has the stated time complexity.

(i) The algorithm. This is a modified version of Jarvis’ algorithm5 with the difference that it works on spherical circles instead of planar points. Here we should remark that the spherical circles will be thought of as directed circle lines having the same specified direction. Let it be the counter-clockwise direction (seen from outside of the sphere) in order to keep consistency with the description of the algorithm. This is important because then the directed distance of two points on a circle line is unique, i.e. the distance by which one has to move from the first point to the second in this specified direction. The algorithm will need computation of the supporting dihedron of pairs of circles. Following from condition (3.2.2) of the theorem the supporting dihedron exists for each pair of circles.

(0) The input of the algorithm is the set of spherical circles and a spherical point for which

(i.e. a,, is the centre of one hemisphere containing all the circles). Following from condition (3.2.2) of the theorem, at least one such a, always exists.

The output of the algorithm will be the set of the forming circles (i.e. the circles contributing to the boundary of the convex hull) and the supporting bound- ary main arcs connecting them. These latter will be given by their end points.

(1) Exclude from further consideration all the circles for which

because they will definitely not be forming circles is equivalent to Renumber the

remaining set of circles to If m = 1 then the algorithm stops.

(2) Find a circle which is definitely a forming circle. This can be done as follows. Find i for which

and then let I = i.

(3) Find the circle which is the next forming circle following when moving on the boundary of the convex hull in a counter-clockwise direction (it definitely exists consequent on step (1)). It can be done as follows. For all

compute the four supporting points aI1, aI2, ai1, ai1 (see proof of b) of LEMMA 2) and keep that pair of them which is on the right side of the main arc from a, to a, (this requirement is consistent with the counter-clockwise traversal of the boundary)

Page 8: Ray Coherence Between a Sphere and a Convex Polyhedron

170 T. Horvath et al. / Ray Coherence

and denote the main arc running from a,, to a,, by A,,. Then choose that i for which all the circles lie on the left side of A,,. In the case when more than one such i exists then choose that for which the length of A,, is minimal. With this i let J = i.

(4) Find the circle which is the next forming circle following when moving on the boundary of the convex hull in counter-clockwise direction, in the fol- lowing way. In a very similar manner as in step (3), for all

compute the four supporting points a,,, a,,, a,,, a,, and keep that pair a,,, a,, (k E 1,2) of them which is on the right side of the main arc from a, to a, and denote the main arc running from a,, to by A,,. But now choose that i for which the distance (arc length) on

from a,, to is minimal ( j comes from the previous step). If more than one such i exists then choose that for which the length of A1i is minimal. With this i let K = i. If K = I then the algorithm stops else let J = K, j = k and go to the beginning of step (4).

(ii) Time complexity. Step (1) requires step (2) O(n²), O(n) and step (3) O(n²) comparisons, respectively. Step (4) requires O(n) comparisons and is executed O(n) times.

This algorithm can be used only when the necessary condition (3.2.2) in THEOREM 5 holds. Is it true for the spherical circles appearing when one considers ray coherence between a sphere and a disjoint convex polyhedron? The answer is positive, as will be shown in the next section.

3.3. Ray Coherence Between Linearly Separable Objects

The next theorem is quite trivial, which is why we have not included it among the new results in section 2.2.

THEOREM 6 (on ray coherence between linearly separ- able objects) : Let be two linearly separable objects. Then

(i.e. the corresponding “direction points ” lie on one hemisphere).

PROOF: Following from linear separability at least one separating plane P exists with lying on its one side and

on its other side. Let be a normal vector of P for which

and

With this n for any

COROLLARY: The algorithm given in the proof of THEOREM 5 can always be used for considering ray coherence between a sphere and a disjoint convex polyhedron.

4. Implementation Experiments

We have implemented a ray tracing algorithm based on the theorems and lemmas of secti ons 2 and 3. It handles only spheres and polyhedra. The program is written in the C language and is compiled onto a 486/20Mhz/8Mb IBM-compatible PC.

4.1. Implementation Details

In this subsection we discuss some algorithmic aspects ofour implementation.

4.1.1. Computing the Convex Hull of Spherical Points

Exploiting THEOREM 2 for a pair of convex polyhedra needs computation of the convex hull of spherical points. Like Ohta and Maekawa³ before us, we also used a modified version of Graham’s algorithma. Although Ohta and Maekawa have reported numerical instability in their implementation, we have not experienced it with ours during its tests on even quite “wild” randomly generated point sets with n > 1000 and

Ohta and Maekawa have also reported the low speed of their implementation, i.e. the speed of computing the con- vex hull of spherical points corresponding to THEOREM 2 compared with the speed of computing the spherical circle corresponding to THEOREM 1 . Unfortunately, this is also true of our experiments, as can be seen in section 4.2.

4.1.2. Computing the Convex Hull of Spherical Circles

Our implementation is based on the algorithm introduced in the proof of THEOREM 5 and works without numerical instability even on sets of circles

with n > 200 and

what is equivalent with the theorem’s statement.

For finding a proper a, fulfilling (3.2.3) (i.e. for detecting linear separability of the sphere and the polyhedron) we used bounding boxes around the objects. These boxes have faces parallel to the coordinate planes and contain the corresponding object. If the boxes of two objects do not overlap along one of the coordinate axes (e.g. the x axis) then this gives the normal vector n of a separating plane (e.g. [1, 0, 0] or [ - 1 , 0, 0], depending on which

Page 9: Ray Coherence Between a Sphere and a Convex Polyhedron

T. Horvath et al. / Ray Coherence 171

object is the “ray origin”, see THEOREM 6), and then (if keeping consistent with proof of

THEOREM 6). If no a, can be found for a pair of objects in the above way then it generally does not imply that the two objects are linearly non-separable. However, at the current stage of our implementation, in this case we treat the objects as linearly non-separable and the whole sphere

will be treated as the set of possible “direction points”.

4.1.3. Intersection Between Spherical Sets

We used the same method as Ohta and Maekawa for dividing the whole direction space (i.e. into sub- directions. Let us quote again: “We use a partitioning method based on the cube. The entire direction space is first divided into 6 sub-directions according to the 6 faces of a cube, and then each face is divided into several rectangles”. This gives a number of convex spherical rectangles on In Step 1.4 of the pre-processing step, such rectangles have to be tested for intersection with sets as circles (THEOREM 1), convex hulls of points (THEOREM 2) and convex hulls of circles (THEOREMS 3 and 4). In our implementation, if such an intersection test is to be performed, then first the four vertices of the rectangle are tested to see if any one of them is contained in the set (in case of intersection, and if the diameter of the rectangles decreases, this is the most likely case). If the result of the test is positive then intersection is detected, else the four sides (arcs) of the rectangle are tested for intersection with the boundary of the set. If no intersection is detected, then the set itself is tested to see whether it is wholly contained in the rectangle.

4.2. Running Time Experiments

We used a test scene consisting of spheres and tetrahedra. The base cell C consisted of a tetrahedron with 9) and a sphere with o = (5,5,5), r = 1. Then the scene was built up as the union of cells

with The tables below contain some of the running time results. n denotes the number of objects, is the pre- processing time and the tracing time resulted from exploiting THEOREMS are the corre- sponding results for the case when only THEOREM 1 is used with surrounding spheres.

1) resolution: 500 x 500 pixels

2) resolution: 1000 x 1000 pixels

These tables show that although the tracing time is reduced, the pre-processing time is increased so that it can easily occur that the total running time is worse than in the case of the simpler algorithm. One possibility for avoiding this would be that the ray tracer optimally chooses for each pair of objects which method is to be used in the pre-processing step.

5. Conclusions

It was proven for the case of a sphere and a disjoint polyhedron that the directions of all the rays originating on the surface of the polyhedron and intersecting the sphere fall in a set that is less than the half of the set of all the possible directions ; and this set can be generated in O(N²) time if the sphere and the N vertices of the polyhedron are given. The same is true for the opposite rays. This result, together with the two ray coherence theorems of Ohta and Maekawa, can serve as background for fast ray tracing algorithms to render mixed scenes of spheres and convex polyhedra. One possibility for hand- ling nonconvex polyhedra is to divide them into convex parts and consider the union of convex spherical hulls. Possibilities for further development include :

1) ray coherence theorems for further shapes, 2) quick detection of linear separability for all cases, 3) quicker algorithm for the convex hull of spherical

4) quicker intersection detection between spherical sets,

the latter two forced by running time experiments.

circles,

Acknowledgement

The authors would like to thank Mr Gergely Krammer for scrutinizing the first versions of the manuscript and for his help in making the statements clearer and more rigorous. Many thanks to the referees for their helpful comments that led to the final version of the text.

References

1. Turner Whitted, “An Improved Illumination Model for Shaded Display”, CACM 23(6), pp. 343-349 (1980).

2. Akira Fujimoto, Takayuki Tanaka and Kansei Iwata, “ARTS : Accelerated Ray-Tracing System”,

Page 10: Ray Coherence Between a Sphere and a Convex Polyhedron

172 T. Horvath et al. / Ray Coherence

IEEE Computer Graphics and Applications, pp. Ray Classification”, Computer Graphics, 21(4), pp.

R. A. Jarvis, “On the Identification of the Convex Hull of a Finite Set of Points in the Plane”, In- formation Processing Letters, 2, pp, 18-21 (1973).

R. L. Graham, “An Efficient Algorithm for Deter- mining the Convex Hull of a Finite Planar Set”, Information Processing Letters, 1, pp. 132-133 (1972).

16-25 (April 1986). 55-64 (1987).

5. 3 . Masataka Ohta and Mamoru Maekawa, “Ray

Coherence Theorem and Constant Time Ray Trac- ing Algorithm ”, Computer Graphics (Proceedings of CG International ’87), ed. T. L. Kunii, pp. 303-314 (1987).

James Arvo and David Kirk, “ Fast Ray Tracing by

6.

4.


Top Related