R-LODs: Fast LOD-based Ray Tracing of
Massive Models
Sung-Eui Yoon
Lawrence Livermore National Lab.
Christian Lauterbach
Dinesh Manocha
Univ. of North Carolina-Chapel Hill
2
Goal
● Perform an interactive ray tracing of massive models● Handles various kinds of polygonal
meshes (e.g., scanned data and CAD)
St. Matthew 372M triangles
Double eagle tanker82M triangles Forest model (32M)
3
Recent Advances for Interactive Ray Tracing
● Hardware improvements● Exponential growth of computation power● Multi-core architectures
● Algorithmic improvements● Efficient ray coherence techniques [Wald
et al. 01, Reshetov et al. 05]
4
Hierarchical Acceleration Data Structures
● kd-trees for interactive ray tracing [Wald 04]● Simplicity and efficiency● Used for efficient object culling
kd-nodeAxis-aligned bounding box
5
Ray Tracing of Massive Models
● Logarithmic asymptotic behavior● Very useful for dealing with massive
models● Due to the hierarchical data structures● Observed only in in-core cases
6
Performance of Ray Tracing with Different Model Complexity
● Measured with 2GB main memory
Memorythrashing!
Render time(log scale)
Model complexity (M tri) - log scale
Working set
size 2GB
7
Low Growth Rate of Data Access Time
Growth rateduring 1993 – 2004
Courtesy: http://www.hcibook.com/e3/online/moores-law/
47X
20X2X
8
Inefficient Memory Accesses and Temporal Aliasing
● St. Matthew (256M triangles)● Around 100M visible
triangles
● 1K by 1K image resolution● 1M primary rays● Hundreds of triangle per
pixel● Each triangle likely in
differentarea of memory
9
Main Contributions
● Propose an LOD (level-of-detail)-based ray tracing of massive models● R-LOD, a novel LOD representation for
Ray tracing● Efficient LOD error metric for primary and
secondary rays● Integrate ray and cache coherent
techniques
10
Performance of Ray Tracing with Different Model Complexity
● Measured with 2GB main memory
Memorythrashing!
Render time(log scale)
Model complexity (M tri) - log scale
Working set
size 2GB
11
Performance of LOD-based Ray Tracing
● Measured with 2GB main memory
Model complexity (M tri) - log scale
Achieved up to three order of magnitude speedup!
Render time(log scale)
Working set size
12
Real-time Captured Video – St. Matthew Model
512 by 512 and 2x2 super-sampling, 4 pixels of LOD error in image space
14
Interactive Ray Tracing
● Ray coherences ● [Heckbert and Hanrahan 84, Wald et al.
01, Reshetov et al. 05]● Parallel computing
● [Parker et al. 99, DeMarle et al. 04, Dietrich et al. 05]
● Hardware acceleration● [Purcell et al. 02, Schmittler et al. 04,
Woop et al. 05]● Large dataset
● [Pharr et al. 97, Wald et al. 04]
15
LOD and Out-of-Core Techniques
● Widely researched● LOD book [Luebke et al. 02] ● Out-core algorithm course [Chiang et al.
03]● LOD algorithms combined with out-of-
core techniques● Points clouds [Rusinkiewicz and Levoy 00]● Regular meshes [Hwa et al. 04, Losasso
and Hoppe 04]● General meshes [Lindstrom 03, Cignoni et
al. 04, Yoon et al. 04, Gobbetti and Marton 05]Not clear whether LOD techniques
for rasterization is applicable to ray tracing
16
LOD-based Ray Tracing
● Ray differentials [Igehy 99]● Subdivision meshes [Christensen et al.
03, Stoll et al. 06]● Point clouds [Wand and Straβer 03]
Viewpoint
Image plane
Ray beam for one pixel
Footprint sizeof ray
19
R-LOD Representation
● Tightly integrated with kd-nodes● A plane, material attributes, and surface
deviation
Plane
Normal
kd-node
Valid extent of the planeIntersection
Nointersection
Rays
20
Properties of R-LODs
● Compact and efficient LOD representation● Add only 4 bytes to (8 bytes) kd-node
● Drastic simplification● Useful for performance improvement
● Error-controllable LOD rendering● Error is measured in a screen-space in
terms of pixels-of-error (PoE)● Provides interactive rendering framework
21
Two Main Design Criteria for LOD Metric
● Controllability of visual errors● Efficiency
● Performed per ray (not per object)● More than tens of million times evaluation
22
Visual Artifacts
● Visibility difference● Illumination difference● Path difference for secondary rays
Surface deviation
Projected areaCurvature difference
View direction
Image plane
Ray with original mesh
Ray with LODs
Original mesh
LODs
23
R-LOD Error Metric
● Consider two factors● Projected screen-space area of a kd-node● Surface deviation
24
Conservative Projection Method
● Measures the screen-space area affected by using an R-LOD
Viewpoint
Image plane
PoE error bound
B {R
dmin
C (B) dmin > R?
LOD metric:
One ray beam
kd-node
26
LOD Metric for Secondary Rays
● Applicable to any linear transformation● Shadow● Planar reflection
● Not applicable to non-linear transformation● Refraction● Uses more general, but expensive ray
differentials [Igehy 99]
27
C0 Discontinuity between R-LODs
● Possible solutions● Posing dependencies [Lindstrom 03, Hwa
et al. 04, Yoon et al. 04, Cignoni et al. 05]● Implicit surfaces [Wald and Seidel 05]
Ray
28
Expansion of R-LODs
● Expansion of the extent of the plane● Inspired by hole-free point clouds
rendering [Kalaiah and Varshney 03]● A function of the surface deviation (20%
of the surface deviation)
Ray
29
Impact of Expansions of R-LODs
Original model
Before expansion
After expansion
PoE = 5 at 512 by 512
Hole
30
R-LOD Construction
● Principal component analysis (PCA)● Compute the covariance matrix for the
plane of R-LODs
● Hierarchical PCA computation● Has linear time complexity● Accesses the original data only one time
with virtually no memory overhead
Normal (= Eigenvector)
31
Utilizing Coherence
● Ray coherence● Using LOD improve the utilization of SIMD
traversal/intersection
● Cache coherence● Use cache-oblivious layouts of bounding
volume hierarchies [Yoon and Manocha 06]
● 10% ~ 60% performance improvement
33
Implementation
● Uses common optimized kd-tree construction methods● Based on surface-area heuristic
[MacDonald and Booth 90, Havran 00]
● Out-of-core computation● Decompose an input model into a set of
clusters [Yoon et al. 04]
34
Preprocessing
● Simplification computation speed ● Very fast due to its linear complexity
(3M triangles per min)
● Memory overhead● Requires 33% more storage over the
optimized kd-tree representation [Wald 04]
● Runtime overhead● 5% compared to non-LOD version of the
same efficient ray tracer
35
Impact of R-LODs
PoE = 0(No LOD) PoE = 2.5
# of intersectednodes per ray
Render time
Working setsize
10X speedup
37
Pros and Cons
● Limitations● Does not handle advanced materials such
as BRDF● No guarantee there is no holes
● Advantages● Simplicity● Interactivity● Efficiency
38
Conclusion
● LOD-based ray tracing method● R-LOD representation● Efficient LOD error metric● Hierarchical LOD construction method
with a linear time complexity● Reduce the working set size
39
Ongoing and Future Work
● Investigate an efficient use of implicit surfaces
● Allow approximate visibility ● Extend to global illumination
40
Acknowledgements
● Model contributors● Funding agencies
● Army Research Office● DARPA● Lawrence Livermore National Laboratory● National Science Foundation● Office of Naval Research● RDECOM● Intel● Microsoft
41
Acknowledgements
● Eric Haines● Martin Isenburg● Dawoon Jung● David Kasik● Peter Lindstrom● Matt Pharr● Ingo Wald● Anonymous reviewers
43
UCRL-PRES-223086
This work was performed under the auspices of the U.S. Department of Energy by University of California Lawrence Livermore National Laboratory under contract No. W-7405-ENG-48.
45
Goal
● Perform an interactive ray tracing of massive models● Handles various kinds of polygonal
meshes (e.g., scanned data and CAD)
St. Matthew372M triangles
Double eagle tanker82M triangles
Isosurface (472M)
46
Memory Hierarchies
Register
Caches
Main memory
Disk storage
Size
1KB
1MB
1GB
> 1GB
Speed
100 ns
101 ns
102ns
104ns
47
Hierarchical R-LOD Computation with Linear Time Complexity
where , are x, y coordinates of kth points
,))((1
n
kxkxkxy yx
kx ky
n
kk
n
kk
n
kk
n
kk
n
kkkxy yx
nyx
nyx
112
111
22
+
48
Performance Comparison – St. Matthew Model
Render time(sec)
Non-LOD
LOD
2 ~ 20X improvements
Approaching the model for every frame
50
Further Information
● R-LODs: Fast LOD-based Ray Tracing of Massive Models● S. Yoon, C. Lauterbach, and D. Manocha● (To appear at) Pacific graphics (The Visual
Computer) 2006
51
Recent Advances for Interactive Ray Tracing
● Hardware improvements● Exponential growth of computation power● Multi-core architectures
● Algorithmic improvements● Efficient ray coherence techniques [Wald
et al. 01, Reshetov et al. 05]
These improvements may not provide
an efficient solution to our problem!
52
Ray Coherence Techniques
● Assume coherences between spatially coherent rays● Works well with CAD or architectural
models
● Highly-tessellated models● There may not be much coherence
between rays
Viewpoint
Image plane
Small triangles
Rays per each pixel
53
Ray Coherence Techniques
● Models with large primitives● Group rays and test intersections
between the group and a bounding box
Viewpoint
Image planeLarge
triangles
Ray beams
54
Ray Coherence Techniques
● Highly tessellated models● Fall back to the normal ray tracing● Causes incoherent memory accesses and
temporal aliasing
Viewpoint
Image planeSmall
triangles
Ray beams
55
Runtime Traversal with R-LODs
● Built on top of the efficient kd-tree traversal algorithm [Wald 04]
: kd-node w/ R-LOD : kd-node w/o R-LOD
Check whether the error is met?
Check whether there is an intersection?
If intersected, return shading info Otherwise, stop traversal
56
Two Main Design Criteria for LOD Metric
● Controllability of visual errors● Efficiency
● Model complexity: 100M (at least 27 deep kd-tree)
● Image resolution: 1k by 1K (= 1M rays)● 27M (= 1M x 27) times of LOD metric
evaluation!
57
Surface Deviation
● Combined with the previous projected-space error bound, R
Underlying geometry
Plane of R-LOD
New R
58
Properties of R-LODs
● Compact and efficient LOD representation● Add only 4 bytes to (8 bytes) kd-node
● Drastic simplification● Useful for performance improvement● Recursively simplify 23 triangles into one
R-LOD
kd-node w/o R-LOD
kd-node w/ R-LOD
Simplify
59
Image Quality Comparison – Forest Model (32M Triangles)
PoE = 0 (No LOD) PoE = 4 and cache-oblivious
layout of kd-tree
4 X speedup
Shading difference