1 / 24

Ray Tracing Acceleration Techniques

Faster Intersection. Fewer Rays. Generalized Rays. Uniform grids Spatial hierarchies k-d, oct-tree, bsp hierarchical grids Hierarchical bounding volumes (HBV). Tighter bounds Faster intersector. Early ray termination Adaptive sampling. Beam tracing

frazierl
Download Presentation

Ray Tracing Acceleration Techniques

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Faster Intersection Fewer Rays Generalized Rays Uniform grids Spatial hierarchies k-d, oct-tree, bsp hierarchical grids Hierarchical bounding volumes (HBV) Tighter bounds Faster intersector Early ray termination Adaptive sampling Beam tracing Cone tracing Pencil tracing Ray Tracing Acceleration Techniques Approaches N 1

  2. Primitives • pbrt primitive base class • Shape • Material and emission (area light) • Primitives • Basic geometric primitive • Primitive instance • Transformation and pointer to basic primitive • Aggregate (collection) • Treat collections just like basic primitives • Incorporate acceleration structures into collections • May nest accelerators of different types • Types: grid.cpp and kdtree.cpp

  3. Uniform Grids • Preprocess scene • 1. Find bounding box

  4. Uniform Grids • Preprocess scene • Find bounding box • Determine resolution

  5. Uniform Grids • Preprocess scene • Find bounding box • Determine resolution • 2. Place object in cell, • if object overlaps cell

  6. Uniform Grids • Preprocess scene • Find bounding box • Determine resolution • 3. Place object in cell, • if object overlaps cell • 4. Check that object • intersects cell

  7. Uniform Grids • Preprocess scene • Traverse grid 3D line – 3D-DDA 6-connected line • Section 4.3

  8. Caveat: Overlap • Optimize for objects that overlap multiple cells • Traverse until tmin(cell) > tmax(ray) • Problem: Redundant intersection tests: • Solution: Mailboxes • Assign each ray an increasing number • Primitive intersection cache (mailbox) • Store last ray number tested in mailbox • Only intersect if ray number is greater

  9. Spatial Hierarchies A A Letters correspond to planes (A) Point Location by recursive search

  10. A B B A Spatial Hierarchies Letters correspond to planes (A, B) Point Location by recursive search

  11. A B B C C D A Spatial Hierarchies D Letters correspond to planes (A, B, C, D) Point Location by recursive search

  12. Variations kd-tree oct-tree bsp-tree

  13. Ray Traversal Algorithms • Recursive inorder traversal • [Kaplan, Arvo, Jansen] Intersect(L,tmin,tmax) Intersect(L,tmin,t*) Intersect(R,t*,tmax) Intersect(R,tmin,tmax)

  14. Build Hierarchy Top-Down ? • Choose splitting plane • Midpoint • Median cut • Surface area heuristic

  15. Surface Area and Rays • Number of rays in a given direction that hit an • object is proportional to its projected area • The total number of rays hitting an object is • Crofton’s Theorem: • For a convex body • For example: sphere

  16. Surface Area and Rays • The probability of a ray hitting a convex shape • that is completely inside a convex cell equals

  17. Surface Area Heuristic Intersection time Traversal time b a

  18. Surface Area Heuristic 2n splits b a

  19. Comparison V. Havran, Best Efficiency Scheme Project http://sgi.felk.cvut.cz/BES/

  20. Comparison

  21. Univ. Saarland RTRT Engine • Ray-casts per second = FPS @ 1K × 1K • Pentium-IV 2.5GHz laptop Kd-tree with surface-area heuristic [Havran] Wald et al. 2003 [http://www.mpi-sb.mpg.de/~wald/]

  22. Interactive Ray Tracing • Highly optimized software ray tracers • Use vector instructions; Cache optimized • Clusters and shared memory MPs • Ray tracing hardware • AR250/350 ray tracing processor www.art-render.com • SaarCOR • Ray tracing on programmable GPUs

  23. Theoretical Nugget 1 • Computational geometry of ray shooting • 1. Triangles (Pellegrini) • Time: • Space: • 2. Sphere (Guibas and Pellegrini) • Time: • Space:

  24. Theoretical Nugget 2 • Optical computer = Turing machine • Reif, Tygar, Yoshida • Determining if a ray • starting at y0 arrives • at yn is undecidable y = y+1 y = -2*y if( y>0 )

More Related