CS 354 Acceleration Structures
Upcoming SlideShare
Loading in...5
×
 

CS 354 Acceleration Structures

on

  • 1,306 views

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

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

Statistics

Views

Total Views
1,306
Views on SlideShare
1,306
Embed Views
0

Actions

Likes
1
Downloads
49
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

CS 354 Acceleration Structures CS 354 Acceleration Structures Presentation Transcript

  • CS 354AccelerationStructuresMark KilgardUniversity of TexasApril 24, 2012
  • CS 354 2 Today’s material  In-class quiz  On global illumination lecture  Lecture topic  Project 4  Acceleration structures
  • 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
  • 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!
  • 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.
  • CS 354 6 Project 4  Provides ray tracing framework  Use FLTK toolkit for user interface  Includes sample scenes—.ray files dragon.ray
  • 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{});
  • 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
  • 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
  • CS 354 10 Other Project 4 Scenes recursive_depth.ray turtle.ray hitchcook.ray cone.ray spheres.ray
  • CS 354 11 Debugging Display
  • 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
  • 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
  • CS 354 14 Light Tracing  Trace rays from the light  Contribution rays accumulate image samples
  • CS 354 15 Photon Mapping Examples without diffuse photo map caustics interreflection visualization sub-surface scattering diffuse interreflection
  • 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
  • CS 354 17 More bounces Recursive Rays  Reflections and refractions can spawn lots of rays Fewer bounces 17
  • CS 354 18 Sufficient Shadow Ray Sampling
  • 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
  • CS 354 20 Distribution Ray Tracing  Motion blur  Distribute rays over time Pool Balls Tom Porter RenderMan
  • 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
  • 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
  • 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
  • CS 354 24 Acceleration Structures: Bounding Volume Hierarchies  Build hierarchy of bounding volumes  Bounding volume of interior node has its children
  • 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
  • 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 }
  • 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)
  • 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
  • CS 354 29 Space Subdivision Approaches Uniform grid Octree Quadtree Binary KD Tree Space Partitioning Tree
  • CS 354 30 Uniform Grid Construction Preprocess scene 2. Find bounding box 3. Determine grid resolution
  • 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
  • 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
  • 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
  • CS 354 34 Binary Space Partitioning Tree  2D view of BSP
  • 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; }
  • CS 354 36 BSP Intersection with a Ray
  • CS 354 37 Optimizing Bounding Hierarchies  Complex meshes need to be partitioned into bounding hierarchy [Saut, Sidobre, 2012]
  • CS 354 38 Octree Building  Building octree from boundary representation
  • CS 354 39 KD-tree  Like an Octree  But dividing planes aren’t necessarily in even octo squares  Tighter bounds [Mahmoud Zidan]
  • 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
  • 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
  • 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
  • CS 354 43 Volume Rendering Examples Head with clip planes Liver tumor
  • 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