Game Development Reference

In-Depth Information

(a)

(b)

Figure 1.1.
Comparison of the same scene using (a) Whitted-style ray tracing and (b)

Monte Carlo for global illumination. Notice how other effects such as caustics, soft

shadows, depth of field, and antialiasing are present when using Monte Carlo.

The current implementation is not fully optimized for global illumination. It

produces a high-quality render in 15-30 minutes on large scenes such as the Welsh

Dragon and Thai Statue. However, this approach can be used as a starting point

for optimized algorithms, as demonstrated in [Ernest and Woop 11], to yield

better performance.

1.4

Stackless LBVH

The SLBVH is a stackless and pointerless binary heap that uses a middle split

approach based on the Morton code of primitives [Lauterbach et al. 09]. While

traversing, the next node to be visited is computed using arithmetic operations.

One 32-bit integer is used to store the trail of each ray, which allows restarting

the traversal from the last node hit instead of the root [Laine 10]. Also, using

the split axis and the direction of the ray, the trail can be used to decide whether

the left or right child must be visited first.

The resulting tree is a
heap
. In a heap, the left child of node
n
is located

at 2
n
and the right child is at 2
n
+ 1. The tree representation assumes that

the depth of the tree
D
will be constant, thus the number of nodes will also

remain fixed (regardless of the scene complexity). In this approach, a heap with

depth
D
requires an array of 2
D

1 elements. The scene could have either 1 or

1,000,000 primitives, yet the number of nodes remains the same. This introduces

−

Search Nedrilad ::

Custom Search