cs559: computer graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... ·...
TRANSCRIPT
![Page 1: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/1.jpg)
CS559: Computer Graphics
Lecture 28: Ray Tracing
Li ZhangSpring 2010
Slides are from Ravi Ramamoorthi’s graphics class at Columbia U
![Page 2: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/2.jpg)
Effects needed for Realism
Reflections (Mirrors and Glossy)
Transparency (Water, Glass)
Interreflections (Color Bleeding)
(Soft) Shadows
Complex Illumination (Natural, Area Light)
Realistic Materials (Velvet, Paints, Glass)
And many more
Image courtesy Paul Heckbert 1983
![Page 3: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/3.jpg)
Ray Tracing
Different Approach to Image Synthesis as compared to Hardware pipeline (OpenGL)
OpenGL : Object by ObjectRay Tracing : Pixel by Pixel
Advantage: Easy to compute shadows/transparency/etc
Disadvantage: Slow (in early days)
![Page 4: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/4.jpg)
Basic Version: Ray Casting
Virtual Viewpoint
Virtual Screen Objects
Ray misses all objects: Pixel colored blackRay intersects object: shade using color, lights, materialsMultiple intersections: Use closest one (as does OpenGL)
![Page 5: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/5.jpg)
Shadows
Virtual Viewpoint
Virtual Screen Objects
10.5 in textbook
Light Source
Shadow ray to light is unblocked: object visibleShadow ray to light is blocked: object in shadow
![Page 6: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/6.jpg)
Mirror Reflections/Refractions
Virtual Viewpoint
Virtual Screen ObjectsGenerate reflected ray in mirror direction, Get reflections and refractions of objects
![Page 7: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/7.jpg)
Recursive Ray Tracing (Core Idea)
For each pixelTrace Primary Eye Ray, find intersection
Trace Secondary Shadow Ray(s) to all light(s)Color = Visible1 ? Illumination Model(light1) : 0 ;Color += Visible2 ? Illumination Model(light2) : 0 ;…
Trace Reflected RayColor += reflectivity * Color of reflected ray
Trace Refracted RayColor += transparency * Color of refracted ray
Recursive function Calls
![Page 8: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/8.jpg)
![Page 9: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/9.jpg)
Example
SphereHow to decide there is an intersection?
TriangleHow to decide the intersection is inside?
PolygonHow to decide the intersection is inside?
How about an ellipsoid?
![Page 10: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/10.jpg)
Ray-Tracing Transformed Objects
We have an optimized ray-sphere testBut we want to ray trace an ellipsoid…
Solution: Ellipsoid transforms sphereApply inverse transform to ray, use ray-sphere
![Page 11: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/11.jpg)
Acceleration
Testing each object for each ray is slowFaster Intersections
Optimized Ray-Object IntersectionsFewer Intersections
![Page 12: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/12.jpg)
Acceleration Structures
Bounding boxes (possibly hierarchical)If no intersection bounding box, needn’t check objects
Bounding Box
Ray
Different Spatial Hierarchies (Oct-trees, kd trees, BSP trees)
![Page 13: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/13.jpg)
Octree
![Page 14: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/14.jpg)
K-d tree
![Page 15: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/15.jpg)
Acceleration Structures: Grids
![Page 16: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/16.jpg)
Anti-aliasing
Aliasing when drawing a diagonal on a square grid:
stairsteppingAKA jaggies
Especially noticeable:high-contrast edgesnear horizontal or near verticalAs line rotates (in 2D)
steps change lengthcorners of steps slide along the edgeknown as crawlies
![Page 17: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/17.jpg)
SupersamplingA more popular method (although less elegant) is supersampling:
Point sample the pixel at several locationsCombine the results into the final pixel color
By sampling more times per pixel:Raises the sampling rateRaises the frequencies we can capture
Commonly use 16 or more samples per pixelRequires potentially 16 times as much work to generate image16 times Memory?
A brute-force approachBut straightforward to implementVery powerful
![Page 18: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/18.jpg)
Moiré Artifact
![Page 19: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/19.jpg)
Random SamplingSupersample at several randomly located points
Breaks up repeating signalsEliminates Moiré patternsInstead of aliasing, frequencies greater than 1 pixel appear as noise in the image
Noise tends to be less objectionable to the viewer than jaggies or Moiré patternsThe human eye is pretty good at filtering out noise
But suffers from potential clustering and gapsResult is not necessarily accurateToo much noise.
![Page 20: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/20.jpg)
Jittered SamplingAKA stratified sampling,
Divide pixel into a grid of subpixelsSample each subpixel at a random location
Combines the advantages of both uniform and random samplingfilters high frequenciesfrequencies greater than subpixel sampling rate turned into noise
Commonly used
![Page 21: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/21.jpg)
Soft shadow
penumbra
![Page 22: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/22.jpg)
Soft Shadow
![Page 23: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/23.jpg)
Comparison
![Page 24: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/24.jpg)
Glossy Surface
http://www.neilblevins.com/cg_education/brushed_metal/brushed_metal.htm
![Page 25: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/25.jpg)
Vertical vs Horizonal roughness
http://www.neilblevins.com/cg_education/brushed_metal/brushed_metal.htm
![Page 26: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/26.jpg)
Ray tracing a glossy surface
http://www.neilblevins.com/cg_education/brushed_metal/brushed_metal.htm
![Page 27: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/27.jpg)
Ray tracing a glossy surface
![Page 28: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/28.jpg)
Depth of Field
![Page 29: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/29.jpg)
Depth of Field
aperturesensor
Focal plane
![Page 30: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/30.jpg)
Depth of Field
aperturesensor
Focal plane
![Page 31: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/31.jpg)
Depth of Field in OpenGL
![Page 32: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/32.jpg)
Depth of Field in OpenGL
Render an image at each jittered location
Then average the images
![Page 33: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/33.jpg)
Motion Blur
Ray trace a moving scene at different time instance and average the images
![Page 34: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/34.jpg)
Motion Blur in OpenGL
Render a moving scene at different time instance
Average the images (using Accumulation buffer)
![Page 35: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/35.jpg)
Ray tracing examples
![Page 36: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/36.jpg)
Ray tracing examples
![Page 37: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/37.jpg)
Ray tracing examples
![Page 38: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/38.jpg)
Image Based Rendering
MotivationRealistic Rendering requires
realistic 3D modelsrealistic material modelstakes time
![Page 39: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/39.jpg)
Rendering a desktop
![Page 40: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/40.jpg)
![Page 41: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/41.jpg)
Rendering a desktop
Rendering in real-time, with global illumination effect (e.g. inter-reflection)
![Page 42: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/42.jpg)
Image Based Rendering
Fast Realistic Rendering without 3D models
![Page 43: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/43.jpg)
Start from Ray Tracing
Rendering is about computing color along each ray
![Page 44: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/44.jpg)
Sampling Rays
![Page 45: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/45.jpg)
Sampling Rays by Taking Pictures
![Page 46: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/46.jpg)
Rendering as Ray Resampling
![Page 47: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/47.jpg)
Ray space
How to parameterize the ray space
How to sample and resample rays
![Page 48: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/48.jpg)
Two Plane Parameterization
![Page 49: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/49.jpg)
Stanford Camera Array
![Page 50: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/50.jpg)
Light Field Rendering
Very Fast
![Page 51: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/51.jpg)
Light Field Rendering
4D interpolation
![Page 52: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/52.jpg)
Light Field Rendering
Don’t need to model anything: surface model, volumetric model, lighting model, surface property model…
NOTHING but sampling and resampling rays.
![Page 53: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/53.jpg)
Application in Movies
![Page 54: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/54.jpg)
Capture scene with a camera array
![Page 56: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/56.jpg)
Discussion
LimitationSampling density must be highFixed Illumination, static scene
![Page 57: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/57.jpg)
Methods using Fewer Cameras
High-quality video view interpolation using a layered representation. C. L. Zitnick, S.B. Kang, M. Uyttendaele, S. Winder, and R. Szeliski, SIGGRAPH 2004
http://research.microsoft.com/~larryz/videoviewinterpolation.htm
![Page 58: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/58.jpg)
CS559: Computer Graphics
Final Review
Li Zhang
Spring 2010
![Page 59: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/59.jpg)
What’s not in the final
• OpenGL and FLTK syntax
• Image based Rendering
![Page 60: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/60.jpg)
Eyes and Cameras
• Camera obscura – Pinhole, lens
– Different ways of capturing color
• Optical effect– Motion blur
– Depth of Field
![Page 61: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/61.jpg)
Images
• Minimum Sample requirement– Sampling theorem
• Re‐sampling– Up‐sampling, down‐sampling
– Anti‐aliasing
• Compositing– Alpha channel
![Page 62: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/62.jpg)
Image Filtering
• Convolution– Continuous and discrete
• Linear filter– Blur, shift, sharpen, edge detection…
• Painter algorithm, Project 1– Iteratively apply strokes
![Page 63: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/63.jpg)
Image warping
• 2D transformation– Scale, Rotate, affine, translate, …
– Inverse transformation
• Properties of 2D transformations– Line to line, parallel to parallel, …
• Homogeneous transformation
• Forward warping– Splatting
• Inverse warping– Reconstruction
![Page 64: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/64.jpg)
Image morphing
• What do we need?– Avoid ghosting
• How to do it?– Warping + blending
![Page 65: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/65.jpg)
3D transform
• Homogenous Coordinate– Point vs direction
– Transforming normals
• 3D rotation– property
– Different representation
– Geometric interpretation
• Concatenation of transforms– Hierarchical modeling
![Page 66: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/66.jpg)
Projection
• Graphics pipeline
• Orthographic vs perspective projection– Matrix representation
– Vanishing point
• View frustum– Clipping plane, Field of view
– Convert to projection matrix
• Canonical view volume– From perspective view volume
![Page 67: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/67.jpg)
Scan conversion and visibility
• Draw lines and triangles– Tricks to make it fast
– Anti‐aliasing
• BSP– How to construct and how to use
• Z buffer vs A buffer– Pros and cons
![Page 68: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/68.jpg)
Shading
• Phong shading model– Emission, diffuse, specular
• Types of light sources– Point, spot, directional
• Shading interpolation– Flat, Gouraud, and Phong
![Page 69: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/69.jpg)
Curves
• Implicit vs Parametric Curves
• Polynomial Curves– How to evaluate polynomial
– How to compute the curve
– Problem with high order polynomials
• Piecewise cubic polynomial– Continuity: C0,C1,C2
– Local control
– interpolation
![Page 70: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/70.jpg)
Curves
• Natural, Hermite, Catmull‐Rom, Cardinal, Bezier, – Commonality and differences
• Bezier curves– Subdivision
– De Casteljau
– Generalization
– …
![Page 71: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/71.jpg)
Texture
• Calculate texture coord– Perspective correct interpolation
• Texture resampling– Antialiasing: Mipmap, Ripmap, SAT
• How do they work,
• What can they do, limitation
• Other usages:– Bump Map, Displacement Map, 3D Texture, Environment Map, Shadow map
– Projector texture (no requirement)
![Page 72: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/72.jpg)
Shape
• Boundary vs Solid modeling
• Parametric, Implicit, Procedural– Pros and cons
• Polygon meshes– Why popular
– Pros and cons
– Data structure
![Page 73: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/73.jpg)
Shape
• Sweep objects
• Spatial enumeration– Oct tree
• Bezier Patch– Bilinear, biquadric, bicubic
– De Casteljau
![Page 74: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/74.jpg)
Subdivision Curves and Surfaces
• Approximating vs Interpolating
• Regular vs Irregular vertices
• Continuity
• Loop, sqrt(3), Catmull‐Clark– Commanality and difference
– Piecewise smoothness (no requirement)
• Fractal Modeling– Terrains, trees, …
![Page 75: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/75.jpg)
Animation
• Particle Systems– Euler method
– Collision Detection and Response
• Principles of Cartoon
![Page 76: CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... · CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang. Spring 2010. Slides are](https://reader030.vdocuments.us/reader030/viewer/2022040613/5f0830b77e708231d420c98b/html5/thumbnails/76.jpg)
Raytracing
• Recursive procedure– Shadow, Transparency, Reflection, Refraction
– Why inter‐reflection is hard?
– Anti‐aliasing: jittered sampling, why
– Soft shadow, glossy surface,
– Depth of field, Motion blur
• Ray object intersection– Simple objects: triangle, polygons, …
• Spatial data structure for Acceleration – BSP, octtree, grid