Graphics Reference
In-Depth Information
Geometry
Materials
Ray
Tracer
...
Rays
Acceleration
Data
Structure
Random
Access
...
Figure 2.3. Ray-order ray tracing using a global acceleration data structure accesses
the primitives and their resources in quasi-random order.
Our method bridges this divide: It allows for the precise tracing of arbitrary
rays while only using linear render passes of triangle soups, just like rasterizing
renderers do. Thus, it remains trivial to render dynamic geometry. Both geome-
try and shading can even be manipulated on the fly by shaders as usual. Hence,
enhancing existing graphics engines with ray tracing becomes much easier.
2.2 Object-Order Ray Tracing Using the Ray Grid
To determine which pixels are overlapped by geometric primitives (typically trian-
gles), rasterization projects them onto an image raster. Similarly, our algorithm
determines which rays potentially intersect geometric primitives using a ray grid .
Grid- and tree-based ray scheduling has been explored before in work on out-of-
core ray tracing [Pharr et al. 97,Hanika et al. 10] and coherent image-order ray
tracing [Guntury and Narayanan 12,Bikker 12].
The ray grid is a coarse voxel grid that encloses the scene. Each cell in the
grid stores links to all rays that intersect it. Before any actual intersection testing
is performed, the grid is filled by ray marching through the grid and storing a
link to the traversing ray in each of the traversed grid cells.
In a subsequent intersection testing stage, all primitives in the scene are ren-
dered into this ray grid. For every grid cell intersected by a primitive, we simply
look up all the rays that traversed this particular grid cell during the prior ray
grid construction stage and then test the primitive for intersection with only those
rays. If an intersection is detected, the corresponding ray is updated with the
nearest hit information.
Search WWH ::




Custom Search