cs 431/636 advanced rendering techniques · cs 431/636 advanced rendering techniques dr. david...
TRANSCRIPT
![Page 1: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/1.jpg)
CS 431/636 Advanced Rendering Techniques
Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM
Presentation 4 4/22/08
![Page 2: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/2.jpg)
Questions from Last Week? Color models Light models Phong shading model Assignment 2
![Page 3: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/3.jpg)
Slide Credits
Leonard McMillan, Seth Teller, Fredo Durand, Barb Cutler - MIT
David Luebke - University of Virginia Matt Pharr - Stanford University Jonathan Cohen - Johns Hopkins U. Kevin Suffern -University of Technology,
Sydney, Australia
![Page 4: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/4.jpg)
Motivation
![Page 5: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/5.jpg)
Extra rays needed for these effects Distributed Ray Tracing
Soft shadows Anti-aliasing (getting rid of jaggies) Glossy reflection Motion blur Depth of field (focus)
![Page 6: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/6.jpg)
Shadows one shadow ray per
intersection per point light source no shadow rays
one shadow ray
![Page 7: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/7.jpg)
Soft Shadows multiple shadow rays
to sample area light source one shadow ray
lots of shadow rays
![Page 8: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/8.jpg)
Antialiasing – Supersampling multiple
rays per pixel point light
area light
jaggies w/ antialiasing
![Page 9: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/9.jpg)
one reflection ray per intersection
perfect mirror
Reflection
θθ
![Page 10: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/10.jpg)
Glossy Reflection multiple reflection rays
polished surface θ θ
Justin Legakis
![Page 11: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/11.jpg)
Motion Blur Sample
objects temporally
Rob Cook
![Page 12: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/12.jpg)
Depth of Field multiple rays per pixel
Justin Legakis focal length film
![Page 13: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/13.jpg)
![Page 14: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/14.jpg)
Algorithm Analysis Ray casting Lots of primitives Recursive Distributed Ray
Tracing Effects Soft shadows Anti-aliasing Glossy reflection Motion blur Depth of field
cost ≤ height * width * num primitives * intersection cost * num shadow rays * supersampling * num glossy rays * num temporal samples * max recursion depth * . . .
can we reduce this?
![Page 15: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/15.jpg)
Bounding Regions
![Page 16: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/16.jpg)
Acceleration of Ray Casting Goal: Reduce the
number of ray/primitive intersection tests
![Page 17: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/17.jpg)
Conservative Bounding Region First check for an
intersection with a conservative bounding region
Early reject
![Page 18: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/18.jpg)
Conservative Bounding Regions bounding
sphere
axis-aligned bounding box
arbitrary convex region (bounding half-spaces)
non-aligned bounding box
• tight → avoid false positives
• fast to intersect
![Page 19: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/19.jpg)
Bounding Volumes What makes a “good” bounding volume?
Tightness of fit (expressed how?) Simplicity of intersection Total cost = b*B + i*I
• b: # times volume tested for intersection • B: cost of ray-volume intersection test • i: # times item is tested for intersection • I: cost of ray-item intersection test
![Page 20: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/20.jpg)
![Page 21: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/21.jpg)
![Page 22: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/22.jpg)
Bounding Volumes Spheres
Cheap intersection test Poor fit Somewhat expensive
to fit to data bounding sphere
![Page 23: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/23.jpg)
Bounding Volumes Axis-aligned bounding boxes (AABBs)
Relatively cheap intersection test Usually better fit Trivial to fit to data
axis-aligned bounding box
![Page 24: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/24.jpg)
Bounding Volumes Oriented bounding boxes (OBBs)
Medium-expensive intersection test Very good fit (asymptotically better) Medium-difficult to fit to data
oriented bounding box
![Page 25: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/25.jpg)
Bounding Volumes Slabs (parallel planes)
Comparatively expensive Very good fit Very difficult to fit to
data
arbitrary convex region (bounding half-spaces)
![Page 26: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/26.jpg)
Intersection with Axis-Aligned Box
From Lecture 2 For all 3 axes, calculate the intersection distances t1 and t2
tnear = max (t1x, t1y, t1z) tfar = min (t2x, t2y, t2z)
If tnear> tfar, box is missed
If tfar< 0, box is behind
If box survived tests, report intersection at tnear
y=Y2
y=Y1
x=X1 x=X2
tnear
tfar
t1x
t1y
t2x
t2y
![Page 27: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/27.jpg)
Bounding Box of a Triangle
(xmin, ymin, zmin)
(x0, y0, z0)
(x1, y1, z1)
(x2, y2, z2) = (min(x0,x1,x2), min(y0,y1,y2), min(z0,z1,z2))
(xmax, ymax, zmax) = (max(x0,x1,x2), max(y0,y1,y2), max(z0,z1,z2))
![Page 28: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/28.jpg)
Bounding Box of a Sphere
r
(x, y, z)
(xmin, ymin, zmin) = (x-r, y-r, z-r)
(xmax, ymax, zmax)
= (x+r, y+r, z+r)
![Page 29: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/29.jpg)
Bounding Box of a Group
(xmin, ymin, zmin) = (min(xmin_a,xmin_b), min(ymin_a,ymin_b), min(zmin_a,zmin_b))
(xmax, ymax, zmax) = (max(xmax_a,xmax_b), max(ymax_a,ymax_b), max(zmax_a,zmax_b))
(xmin_b, ymin_b, zmin_b)
(xmin_a, ymin_a, zmin_a)
(xmax_b, ymax_b, zmax_b) (xmax_a, ymax_a, zmax_a)
![Page 30: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/30.jpg)
Acceleration Spatial Data Structures
![Page 31: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/31.jpg)
Spatial Data Structures Spatial partitioning techniques classify all space into
non-overlapping portions Easier to generate automatically Can “walk” ray from partition to partition
Hierarchical bounding volumes surround objects in the scene with (possibly overlapping) volumes Often tightest fit
![Page 32: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/32.jpg)
Spatial Partitioning Some spatial partitioning schemes:
Regular grid (2-D or 3-D) Octree k-D tree BSP-tree
![Page 33: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/33.jpg)
Acceleration Spatial Data Structures
Regular Grid
![Page 34: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/34.jpg)
Regular Grid
![Page 35: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/35.jpg)
Create grid Find
bounding box of scene
Choose grid spacing
gridx need not = gridy
Cell (i, j)
gridy
gridx
![Page 36: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/36.jpg)
Insert primitives into grid Primitives
that overlap multiple cells?
Insert into multiple cells (use pointers)
![Page 37: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/37.jpg)
Does the cell contain an intersection?
Yes: return closestintersection
No: continue
For each cell along a ray
![Page 38: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/38.jpg)
Preventing repeated computation Perform the
computation once, "mark" the object
Don't re-intersect marked objects
![Page 39: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/39.jpg)
If intersection t is not within the cell range, continue (there may be something closer)
Don't return distant intersections
![Page 40: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/40.jpg)
Where do we start? Intersect ray
with scene bounding box
Ray origin may be inside the scene bounding box
tmin
tnext_v
tnext_h
tmin
tnext_v tnext_h
Cell (i, j)
![Page 41: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/41.jpg)
Is there a pattern to cell crossings? Yes, the
horizontal and vertical crossings have regular spacing
dtv = gridy / diry
dth = gridx / dirx gridy
gridx
(dirx, diry)
![Page 42: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/42.jpg)
What's the next cell? if tnext_v < tnext_h i += signx
tmin = tnext_v tnext_v += dtv else j += signy tmin = tnext_h
tnext_h += dth dtv dth
Cell (i, j)
tmin
tnext_v
tnext_h
Cell (i+1, j)
(dirx, diry)
if (dirx > 0) signx = 1 else signx = -1 if (diry > 0) signy = 1 else signy = -1
![Page 43: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/43.jpg)
What's the next cell? 3DDDA – Three
Dimensional Digital Difference Analyzer
3D Bresenham Algorithm
![Page 44: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/44.jpg)
Pseudo-code create grid insert primitives into grid for each ray r find initial cell c(i,j), tmin, tnext_v & tnext_h compute dtv, dth, signx and signy while c != NULL for each primitive p in c intersect r with p if intersection in range found return c = find next cell
![Page 45: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/45.jpg)
Regular Grid Discussion
Advantages? easy to construct easy to traverse
Disadvantages? may be only sparsely filled geometry may still be clumped
![Page 46: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/46.jpg)
Acceleration Spatial Data Structures
Adaptive Grids
![Page 47: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/47.jpg)
Adaptive Grids
Nested Grids Octree/(Quadtree)
Subdivide until each cell contains no more than n elements, or maximum depth d is reached
![Page 48: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/48.jpg)
Primitives in an Adaptive Grid Can live at intermediate levels, or
be pushed to lowest level of grid
Octree/(Quadtree)
![Page 49: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/49.jpg)
Adaptive Grid Discussion Advantages?
grid complexity matches geometric density Disadvantages?
more expensive to traverse (especially octree)
![Page 50: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/50.jpg)
k-D Trees k-D tree pros:
Moderately simple to generate More adaptive than octrees
k-D tree cons: Less efficient to trace rays
across Moderately complex data
structure
![Page 51: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/51.jpg)
BSP Trees BSP tree pros:
Extremely adaptive Simple & elegant data
structure BSP tree cons:
Very hard to create optimal BSP
Splitting planes can explode storage
Simple but slow to trace rays across
![Page 52: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/52.jpg)
Acceleration Spatial Data Structures
Bounding Volume Hierarchy
![Page 53: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/53.jpg)
Bounding Volume Hierarchy What makes a “good” bounding volume
hierarchy? Grouped objects (or volumes) should be near
each other Volume should be minimal Sum of all volumes should be minimal Top of the tree is most critical Constructing the hierarchy should pay for
itself!
![Page 54: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/54.jpg)
Bounding Volume Hierarchy Find bounding box of objects Split objects into two groups Recurse
![Page 55: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/55.jpg)
Bounding Volume Hierarchy Find bounding box of objects Split objects into two groups Recurse
![Page 56: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/56.jpg)
Bounding Volume Hierarchy Find bounding box of objects Split objects into two groups Recurse
![Page 57: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/57.jpg)
Bounding Volume Hierarchy Find bounding box of objects Split objects into two groups Recurse
![Page 58: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/58.jpg)
Bounding Volume Hierarchy Find bounding box of objects Split objects into two groups Recurse
![Page 59: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/59.jpg)
Where to split objects? At midpoint OR Sort, and put half of the objects on each side OR Use modeling hierarchy
![Page 60: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/60.jpg)
Data Structure Pseudo-code sort_in_x = TRUE; Make_BVH(object_list, sort_in_x, ptr) struct.bbox = BoundingBox(object_list); If # of objects < Threshold struct.obj_list = object_list Else If (sort_in_x) Sort object centroids in X Else Sort object centroids in Y Split sorted list into two halves Make_BVH(left_obj_list, !sort_in_x, lptr) Make_BVH(right_obj_list, !sort_in_x, rptr) struct.lptr = lptr; struct.rptr = rptr; ptr = &struct; Return
![Page 61: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/61.jpg)
Intersection with BVH Check subvolume with closer intersection first
![Page 62: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/62.jpg)
Intersection with BVH Don't return intersection immediately if the
other subvolume may have a closer intersection
![Page 63: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/63.jpg)
Intersection Pseudo-code Does ray intersect box? intersect_BVH(box, ray, xsect_pt, t) If no more subboxes Intersect geometry and return nearest xsect_pt & t Intersect ray with both subboxes No hits: return xsect_pt = Null; Sort t’s Call subbox of nearest t subbox1 intersect_BVH(subbox1, ray, xsect_pt, t) If hit_subbox2? If xsect_pt == Null || t2near <= t1far intersect_BVH(subbox2, ray, xsect_pt, t) Set nearest xsect_pt and t
Return
![Page 64: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/64.jpg)
Bounding Volume Hierarchy Discussion Advantages
easy to construct easy to traverse binary
Disadvantages may be difficult to choose a good split for a node poor split may result in minimal spatial pruning
Hint Alternate sorting in X and Y
![Page 65: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/65.jpg)
Transformation Hierarchy Group & Transformation
hierarchy may not be a good spatial hierarchy
group
group
transform
transform
transform
transform
A C
D E
transform B
group
transform A B
transform C D
transform C E
Flatten
![Page 66: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/66.jpg)
Whatʼs the best method? What kind of scene are you rendering?
Teapot in a stadium vs. uniform distribution Impact on surface tessellation on distribution
Parameter values are critical
![Page 67: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/67.jpg)
Shoot Fewer Rays Adaptive depth control
Naïve ray tracer: spawn 2 rays per intersection until max recursion limit
In practice, few surfaces are transparent or reflective
Stop shadow ray at first intersection between start and light source
Just shoot the rays you need Determine contribution of ray
• Donʼt shoot rays w/ contribution near 0%
![Page 68: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/68.jpg)
Shoot Fewer Rays Adaptive sampling
Shoot rays coarsely, interpolating their values across pixels
Where adjacent rays differ greatly in value, sample more finely
Stop when some maximum resolution is reached
![Page 69: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/69.jpg)
Generalized Rays Beams, cones, pencils Area sampling, rather than point sampling Geometric computations are tricky
(expensive?) Problems with reflection/refractions
![Page 70: CS 431/636 Advanced Rendering Techniques · CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM → 8:50PM Presentation 4 4/22/08. ... Barb](https://reader033.vdocuments.site/reader033/viewer/2022053011/5f0ea3c77e708231d44035d5/html5/thumbnails/70.jpg)
Wrap Up Discuss next programming assignment
Add an acceleration technique • Uniform grid • Adaptive grid • Bounding volume hierarchy
Supersample image Discuss status/problems/issues with
this weekʼs programming assignment