Title: Accelerating Ray Tracing using Constrained Tetrahedralizations
1Accelerating Ray Tracing usingConstrained
Tetrahedralizations
19th Eurographics Symposium on Rendering
EGSR 2008
Wednesday, June 25th
2Introduction
- Acceleration structures for ray tracing
- Computer graphics
- BVH, kd-tree, grid
- ? Mostly practical (complexity? dynamic
geometry?) - Computational geometry
- Delaunay triangulation
- ? Mostly theoretical (theorems, proofs,
implementations?) - ? Constrained tetrahedralizations
3Introduction
- ? Constrained tetrahedralizations
Construct constrained tetrahedralization as a
preprocess
Use constrained tetrahedralization during ray
traversal
4Constrained Triangulation
- 2D triangulation constraints (edges)
constraints
constrained Delaunay triangulation
conforming Delaunay triangulation
quality Delaunay triangulation
5Constrained Tetrahedralization
- 3D tetrahedralization constraints (faces)
constrained Delaunay tetrahedralization
quality Delaunay tetrahedralization
6Construction
- Piecewise linear complex (PLC)
- Very general geometry representation
- Arbitrary polygons, holes, non-manifold geometry,
- Polygons must properly intersect
- Tetrahedralizations cannot have intersecting
faces - 1. Triangle soup ? PLC
- Eliminate all self-intersections
- 2. PLC ? constrained tetrahedralization
- TetGen, CGAL
7Ray Traversal
- Ray traversal
- Locate ray origin
- Traverse tetrahedralization one tetrahedron at a
time - Stop at constrained face
locate ray origin
traverse triangulation
8Ray Traversal
- Locate ray origin
- Potentially costly
- Accelerate
- Linear search ? grid, monotone subdivision
- Avoid by exploiting ray connectivity
- Rays start at camera position or where previous
ray ended
9Ray Traversal
- Traverse tetrahedralization
- One tetrahedron at a time
- Given entry face, determine exit face
- Several methods
plane intersections
half space classification
scalar triple products
10Ray Traversal
ray hitting scene geometry
ray just missing scene geometry
11Ray Tracing Cost
- Comparison with kd-tree
- Ray tracing cost number of tetrahedra / nodes
visited
scene
quality Delaunay tetrahedralization
constrained Delaunay tetrahedralization
kd-tree
12Ray Tracing Cost
- Teapot-in-a-stadium problem
scene
quality Delaunay tetrahedralization
constrained Delaunay tetrahedralization
kd-tree
13Advantages
- Deforming and dynamic geometry
- Deforming ? theoretical guarantee
- Dynamic ? efficient update
14Advantages
- Time complexity of ray traversal
- Constrained tetrahedralization
- Linear in local geometric complexity
- Hierarchical acceleration structures (kd-tree,
bvh) - Logarithmic at best in global geometric
complexity - No practical results yet
- Effect might only show up for large scenes
15Advantages
- Optimal constrained tetrahedralizations
- Weight tetrahedralization SAH for kd-trees
- Unified data structure for global illumination
- Associate data with vertices, edges, faces,
tetrahedra - Level-of-detail
- Meshes and triangulations use similar data
structures
16Disadvantages
- Constructing constrained tetrahedralizations
- TetGen, CGAL
- Geometry preconditioning
- Eliminating all self-intersections from triangle
soup - Absolute performance
- Limited testing, limited optimization
17Conclusion Future Work
- Conclusion
- Constrained tetrahedralizations
- have a number of unique and interesting
properties and - offer several new perspectives on acceleration
structures - Future work
- Geometry preconditioning
- More elaborate testing
- Further explore advantages
18Thanks!
Acknowledgments Ares Lagae is a Postdoctoral
Fellow of the Research Foundation Flanders
(FWO) Peter Vangorp and Jurgen Laurijssen Jan
Welkenhuyzen from Materialize Tim Volodine
19(No Transcript)
20Numerical Robustness
- Construction
- Adaptive precision floating point arithmetic
- Robust geometric predicates
- ? Common practice in computational geometry
- Traversal
- Ignore robustness errors and degenerate cases
- ? Common practice in computer graphic
- Detection and correction is possible
- ray parameters of plane intersections should be
increasing - temporarily move points