CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... ·...

76
CS559: Computer Graphics Lecture 28: Ray Tracing Li Zhang Spring 2010 Slides are from Ravi Ramamoorthi’s graphics class at Columbia U

Transcript of CS559: Computer Graphicspages.cs.wisc.edu/~lizhang/courses/cs559-2010s/syllabus/05-03-ray... ·...

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

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

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

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

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

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

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

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

Capture scene with a camera array

Page 55: 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

Bullet time in Games

Max Payne (2001)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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