Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

Like this presentation? Why not share!

- NVIDIA OpenGL in 2016 by Mark Kilgard 1551 views
- Out-of-Core Construction of Sparse ... by Jeroen Baert 3787 views
- CS 354 Programmable Shading by Mark Kilgard 3330 views
- CS 354 Final Exam Review by Mark Kilgard 1827 views
- CS 354 Procedural Methods by Mark Kilgard 1836 views
- CS 354 Performance Analysis by Mark Kilgard 1240 views

2,514 views

Published on

April 24, 2012; CS 354 Computer Graphics; University of Texas at Austin

No Downloads

Total views

2,514

On SlideShare

0

From Embeds

0

Number of Embeds

2

Shares

0

Downloads

86

Comments

0

Likes

4

No embeds

No notes for slide

- 1. CS 354AccelerationStructuresMark KilgardUniversity of TexasApril 24, 2012
- 2. CS 354 2 Today’s material In-class quiz On global illumination lecture Lecture topic Project 4 Acceleration structures
- 3. CS 354 3 My Office Hours Tuesday, before class Painter (PAI) 5.35 8:45 a.m. to 9:15 Thursday, after class ACE 6.302 11:00 a.m. to 12 Randy’s office hours Monday & Wednesday 11 a.m. to 12:00 Painter (PAI) 5.33
- 4. CS 354 4 Last time, this time Last lecture, we discussed Global illumination This lecture Acceleration structures Projects Project 4 on ray tracing on Piazza Due May 2, 2012 Get started!
- 5. CS 354 5 On a sheet of paper Daily Quiz • Write your EID, name, and date • Write #1, #2, #3, #4 followed by its answer Multiple choice: In the Russian Roulette approach to termination of Multiple choice: Modeling the tracing recursive rays, termination influence of participating media occurs simulates a) after a fixed number of ray a) motion blur traces b) fog b) after a random number of ray casts between 1 and a fixed c) smoke constant d) a., b., and c. c) when an analytic solution can be reached e) b. and c. d) every trace has a random True of False: Classic Radiosity chance of being terminated assume the Bidirectional Reflectance Distribution Function of all surfaces in True or False: A bidirectional the scene are Lambertian. reflectance distribution function returns a negative value approximately 50% of the time.
- 6. CS 354 6 Project 4 Provides ray tracing framework Use FLTK toolkit for user interface Includes sample scenes—.ray files dragon.ray
- 7. CS 354 7 Sample File: sphere.ray SBT-raytracer 1.0 point_light { position = (-2, 2, -2); camera { colour = (1, 0.3, 0.3); position = (0,0,-4); constant_attenuation_coeff= 0.25; viewdir = (0,0,1); linear_attenuation_coeff = aspectratio = 1; 0.003372407; updir = (0,1,0); quadratic_attenuation_coeff = 0.000045492; } } directional_light { material = { direction = (0, 0, 1); diffuse = (0.4,0.8,0.2); colour = (0.2, 0.2, 0.2); specular = (1,1,0); } shininess = 64; } scale(1.5, sphere { }) scale(2,sphere{});
- 8. CS 354 8 What You Must Implement Blinn-Phong lighting Implement shadow ray model Modify most Ambient, diffuse, specular RayTracer.cpp Modify scene/material.cpp Implement triangle mesh Point light distance intersection attenuation Including normal Inverse squared distance interpolation fall-off Modify Modify scene/light.cpp SceneObjects/trimesh.cpp Implement reflection and refraction rays Modify most RayTracer.cpp
- 9. CS 354 9 Extra Credit Embellishments Spatial data structures Speed up the ray traces Texture mapping Anti-aliasing Cast multiple rays per pixel Lighting effects Normal mapping, bump mapping, environment mapping
- 10. CS 354 10 Other Project 4 Scenes recursive_depth.ray turtle.ray hitchcook.ray cone.ray spheres.ray
- 11. CS 354 11 Debugging Display
- 12. CS 354 12 Two Versions of Rendering Equation Occlusion (G) is zero o Le (x, ω , λ , t ) + Le (x, ω , λ , t ) +Lo (x, ω , λ , t ) = ∫ Ω f r (x, ω ′, ω , λ , t ) Li (x, ω ′, λ , t ) (−ω ′ • n) dω ′ Lo (x, ω , λ , t ) = ∫ f r (x, ωyx , ω , λ , t ) L(y, ωyx , λ , t ) G (x, y ) dy y∈Γ Integrate over hemisphere Integrate over all surface points
- 13. CS 354 13 Photon Mapping Two-pass global illumination algorithm Developed by Henrick Jensen (1996) Two passes Randomly distribute photons around the scene Called “photon map construction” Render treating photons as mini-light sources Capable of efficiently generating otherwise very expensive effects Caustics Diffuse inter-reflections, such as color bleed Sub-surface scattering
- 14. CS 354 14 Light Tracing Trace rays from the light Contribution rays accumulate image samples
- 15. CS 354 15 Photon Mapping Examples without diffuse photo map caustics interreflection visualization sub-surface scattering diffuse interreflection
- 16. CS 354 16 Global Illumination Often Gated by Ray Tracing Speed Shooting rays tends to be the bottleneck Why? Lots of rays cast for quality Shadow rays, lots for soft shadows Reflection and refraction rays Speeding up global illumination generally means speeding up tracing of rays Shading operations can be expensive too But rays involve data structure traversal
- 17. CS 354 17 More bounces Recursive Rays Reflections and refractions can spawn lots of rays Fewer bounces 17
- 18. CS 354 18 Sufficient Shadow Ray Sampling
- 19. CS 354 19 Distribution Ray Tracing Soft shadows Distribute shadow rays over light source region All shadow rays No shadow rays Some shadow rays hit light source, hit light source, hit light source, fully illuminated fully shadowed partially shadowed
- 20. CS 354 20 Distribution Ray Tracing Motion blur Distribute rays over time Pool Balls Tom Porter RenderMan
- 21. CS 354 21 Distribution Ray Tracing Depth of field Distribute rays across a discrete camera aperture No depth-of-field More rays Jittered depth-of-field More images for depth-of-field Even more rays
- 22. CS 354 22 Acceleration Techniques Ray Tracing Acceleration Techniques Fast Fewer Generalized Intersections Rays Rays Statistical Beam tracing Faster Fewer optimizations ray-object ray-object for illumination Cone tracing convergence intersections intersections Pencil tracing Object bounding Bounding volume volumes hierarchies
- 23. CS 354 23 Accelerating Ray Trace Intersection Operations Two key optimizations 3. Exploit binary searching Rather than linear searches 4. Group objects spatially Discard hierarchically Use quick-and-coarse tests… …to avoid slow-and-exact intersection tests
- 24. CS 354 24 Acceleration Structures: Bounding Volume Hierarchies Build hierarchy of bounding volumes Bounding volume of interior node has its children
- 25. CS 354 25 Accelerate Ray Intersections Traverse hierarchy to accelerate ray intersections Intersect node content only if ray hits the bounding volume Skip intersection A, D, E, and F
- 26. CS 354 26 Accelerate Ray Intersection Algorithm Sort hits and detect early termination FindIntersection( Ray ray, Node node ) { // Find intersections with child node bounding volumes … // Sort intersections closest to farthest … // Process intersections, checking for early termination min_t = infinity; for each intersected child i { if (min_t < bv_t[i]) break; shape_t = FindIntersection(ray, child); if (shape_t < min_t) { min_t = shape_t; } } return min_t; // closest intersection }
- 27. CS 354 27 Bounding Volumes Axis-Aligned Bounding Boxes (AABB) min (x,y,z) & max(x,y,z) Trivial plane equations Bounding spheres Point and radius Ray and sphere intersection is easy Solving a quadratic equation Oriented Bounding Box Might have tighter bounds than AABB Convex Polyhedron (Polytope)
- 28. CS 354 28 Spatial Hierarchy Uniform grid Quadtree (2D) and Octree (3D) Exactly four or eight children Equal area/volume for each children KD Tree Two children, splitting in X, Y, or Z Axis aligned splitting planes Not necessarily equal area/volume Binary Space Partitioning (BSP) Tree Arbitrary splitting planes Just two children
- 29. CS 354 29 Space Subdivision Approaches Uniform grid Octree Quadtree Binary KD Tree Space Partitioning Tree
- 30. CS 354 30 Uniform Grid Construction Preprocess scene 2. Find bounding box 3. Determine grid resolution
- 31. CS 354 31 Uniform Grid Construction Preprocess scene 2. Find bounding box 3. Determine grid resolution 4. Place object in cell if its bounding box overlaps the cell
- 32. CS 354 32 Uniform Grid Construction Preprocess scene 2. Find bounding box 3. Determine grid resolution 4. Place object in cell if its bounding box overlaps the cell 5. Check that object overlaps cell
- 33. CS 354 33 Uniform Grid Traversal After processing… Traverse grid 3D line = 3D-DDA Digital Differential Analyzer Advantages Simple construction Simple traversal Disadvantage Poor at sparse or huge scenes
- 34. CS 354 34 Binary Space Partitioning Tree 2D view of BSP
- 35. CS 354 35 Binary Space Partitioning Trees Recursive search Partitioning plane has two nodes FindIntersection( Ray ray, Node node ) { if node is leaf { intersect ray with each object in node return closest object (or nil) } near = child of node in half space containing ray’s origin far = the other child hit = FindIntersection( ray, near ) if hit is null and ray intersections plane defined by node { hit = FindIntersection( ray, far ) } return hit; }
- 36. CS 354 36 BSP Intersection with a Ray
- 37. CS 354 37 Optimizing Bounding Hierarchies Complex meshes need to be partitioned into bounding hierarchy [Saut, Sidobre, 2012]
- 38. CS 354 38 Octree Building Building octree from boundary representation
- 39. CS 354 39 KD-tree Like an Octree But dividing planes aren’t necessarily in even octo squares Tighter bounds [Mahmoud Zidan]
- 40. CS 354 40 Close Cousin of Ray Tracing: Volume Rendering Common task: visualization of volumetric data Data arranged in 3D “voxel” grid Voxel = volume element Applications: medical, oil & gas exploration
- 41. CS 354 41 Simple Case of Ray Casting Rays are all coherent GPU-oriented Volume rendering Draw 3D textured polygons slicing through a 3D texture Apply transfer function Blend in ray order—use framebuffer blending
- 42. CS 354 42 Transfer Function Give viewer control of how volumetric data maps to color & opacity Transfer functions enable visualization of otherwise difficult-to-understand mass of data
- 43. CS 354 43 Volume Rendering Examples Head with clip planes Liver tumor
- 44. CS 354 44 Next Class Next lecture Performance analysis Considerations for tuning interactive graphics applications Reading Chapter 8, 455-460 Chapter 11, 578-601 Project 4 Project 4 is a simple ray tracer Due Wednesday, May 2, 2012

No public clipboards found for this slide

×
### Save the most important slides with Clipping

Clipping is a handy way to collect and organize the most important slides from a presentation. You can keep your great finds in clipboards organized around topics.

Be the first to comment