40
March 26, 2002 Frank Pfenning Carnegie Mellon University http://www.cs.cmu.edu/~fp/courses/graphics/ Ray Casting Ray-Surface Intersections Barycentric Coordinates Reflection and Transmission [Angel, Ch 6.10.1][Handout] Ray Casting Ray-Surface Intersections Barycentric Coordinates Reflection and Transmission [Angel, Ch 6.10.1][Handout] Ray Tracing Ray Tracing 15-462 Computer Graphics I Lecture 16

Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

March 26, 2002Frank PfenningCarnegie Mellon University

http://www.cs.cmu.edu/~fp/courses/graphics/

Ray CastingRay-Surface IntersectionsBarycentric CoordinatesReflection and Transmission

[Angel, Ch 6.10.1][Handout]

Ray CastingRay-Surface IntersectionsBarycentric CoordinatesReflection and Transmission

[Angel, Ch 6.10.1][Handout]

Ray TracingRay Tracing

15-462 Computer Graphics ILecture 16

Page 2: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 2

Local vs. Global Rendering ModelsLocal vs. Global Rendering Models

• Local rendering models (graphics pipeline)– Object illuminations are independent– No light scattering between objects– No real shadows, reflection, transmission

• Global rendering models– Ray tracing (highlights, reflection, transmission)– Radiosity (surface interreflections)

Page 3: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 3

Object Space vs. Image SpaceObject Space vs. Image Space

• Graphics pipeline: for each object, render– Efficient pipeline architecture, on-line– Difficulty: object interactions

• Ray tracing: for each pixel, determine color– Pixel-level parallelism, off-line– Difficulty: efficiency, light scattering

• Radiosity: for each two surface patches, determine diffuse interreflections– Solving integral equations, off-line– Difficulty: efficiency, reflection

Page 4: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 4

Forward Ray TracingForward Ray Tracing

• Rays as paths of photons in world space• Forward ray tracing: follow photon from light

sources to viewer• Problem: many rays will

not contribute to image!

Page 5: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 5

Backward Ray TracingBackward Ray Tracing

• Ray-casting: one ray from center of projection through each pixel in image plane

• Illumination1. Phong (local as before)2. Shadow rays3. Specular reflection4. Specular transmission

• (3) and (4) requirerecursion

Page 6: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 6

Shadow RaysShadow Rays

• Determine if light “really” hits surface point• Cast shadow ray from surface point to light• If shadow ray hits opaque object,no contribution• Improved diffuse reflection

Page 7: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 7

Reflection RaysReflection Rays

• Calculate specular component of illumination• Compute reflection ray (recall: backward!)• Call ray tracer recursively to determine color• Add contributions• Transmission ray

– Analogue for transparent ortranslucent surface

– Use Snell’s laws for refraction

• Later:– Optimizations, stopping criteria

Page 8: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 8

Ray CastingRay Casting

• Simplest case of ray tracing• Required as first step of recursive ray tracing• Basic ray-casting algorithm

– For each pixel (x,y) fire a ray from COP through (x,y)– For each ray & object calculate closest intersection– For closest intersection point p

• Calculate surface normal• For each light source, calculate and add contributions

• Critical operations– Ray-surface intersections– Illumination calculation

Page 9: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 9

OutlineOutline

• Ray Casting• Ray-Surface Intersections• Barycentric Coordinates• Reflection and Transmission

Page 10: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 10

Ray-Surface IntersectionsRay-Surface Intersections

• General implicit surfaces• General parametric surfaces • Specialized analysis for special surfaces

– Spheres– Planes– Polygons– Quadrics

• Do not decompose objects into triangles!• CSG (Constructive Solid Geometry)

– Construct model from building blocks (later lecture)

Page 11: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 11

Rays and Parametric SurfacesRays and Parametric Surfaces

• Ray in parametric form– Origin p0 = [x0 y0 z0 1]T

– Direction d = [xd yd zd 0]t

– Assume d normalized (xd2 + yd

2 + zd2 = 1)

– Ray p(t) = p0 + d t for t > 0

• Surface in parametric form– Point q = g(u, v), possible bounds on u, v– Solve p + d t = g(u, v)– Three equations in three unknowns (t, u, v)

Page 12: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 12

Rays and Implicit SurfacesRays and Implicit Surfaces

• Ray in parametric form– Origin p0 = [x0 y0 z0 1]T

– Direction d = [xd yd zd 0]t

– Assume d normalized (xd2 + yd

2 + zd2 = 1)

– Ray p(t) = p0 + d t for t > 0• Implicit surface

– Given by f(q) = 0– Consists of all points q such that f(q) = 0– Substitute ray equation for q: f(p0 + d t) = 0– Solve for t (univariate root finding)– Closed form (if possible) or numerical approximation

Page 13: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 13

Ray-Sphere Intersection IRay-Sphere Intersection I

• Common and easy case• Define sphere by

– Center c = [xc yc zc 1]T

– Radius r– Surface f(q) = (x – xc)2 + (y – yc)2+ (z – zc)2 – r2 = 0

• Plug in ray equations for x, y, z:

Page 14: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 14

Ray-Sphere Intersection IIRay-Sphere Intersection II

• Simplify to

• Solve to obtain t0 and t1

where

Check if t0, t1> 0 (ray)Return min(t0, t1)

Page 15: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 15

Ray-Sphere Intersection IIIRay-Sphere Intersection III

• For lighting, calculate unit normal

• Negate if ray originates inside the sphere!• Note possible problems with roundoff errors

Page 16: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 16

Simple OptimizationsSimple Optimizations

• Factor common subexpressions• Compute only what is necessary

– Calculate b2 – 4c, abort if negative– Compute normal only for closest intersection– Other similar optimizations [Handout]

Page 17: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 17

Inverse Mapping for Texture Coords.Inverse Mapping for Texture Coords.

• How do we determine texture coordinates?• Inverse mapping problem• No unique solution• Reconsider in each case

– For different basic surfaces– For surface meshes– Still an area of research

Page 18: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 18

Ray-Polygon Intersection IRay-Polygon Intersection I

• Assume planar polygon1. Intersect ray with plane containing polygon2. Check if intersection point is inside polygon

• Plane– Implicit form: ax + by + cz + d = 0– Unit normal: n = [a b c 0]T with a2 + b2 + c2 = 1

• Substitute:

• Solve:

Page 19: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 19

Ray-Polygon Intersection IIRay-Polygon Intersection II

• Substitute t to obtain intersection point in plane• Test if point inside polygon [Lecture 15]

– For example, use even-odd rule or winding rule– Easier in 2D (project) and for triangles (tesselate)

Page 20: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 20

Ray-Polygon Intersection IIIRay-Polygon Intersection III

• Rewrite using dot product

• If n ¢ d = 0, no intersection• If t · 0 the intersection is behind ray origin• Point-in-triangle testing critical for polygonal

models• Project onto planes x = 0, y = 0, or z = 0 for

point-in-polygon test; can be precomputed

Page 21: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 21

Ray-Quadric IntersectionRay-Quadric Intersection

• Quadric f(p) = f(x, y, z) = 0, where f is polynomial of order 2

• Sphere, ellipsoid, paraboloid, hyperboloid, cone, cylinder

• Closed form solution as for sphere• Important case for modelling in ray tracing• Combine with CSG

[see Handout]

Page 22: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 22

OutlineOutline

• Ray Casting• Ray-Surface Intersections• Barycentric Coordinates• Reflection and Transmission

Page 23: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 23

Interpolated Shading for Ray TracingInterpolated Shading for Ray Tracing

• Assume we know normals at vertices• How do we compute normal of interior point?• Need linear interpolation between 3 points• Barycentric coordinates• Yields same answer as scan conversion

Page 24: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 24

Barycentric Coordinates in 1DBarycentric Coordinates in 1D

• Linear interpolation– p(t) = (1 – t)p1 + t p2, 0 · t · 1– p(t) = α p1 + β p2 where α + β = 1– p is between p1 and p2 iff 0 · α, β · 1

• Geometric intuition– Weigh each vertex by ratio of distances from ends

• α, β are called barycentric coordinates

αβ

p1 p p2

Page 25: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 25

Barycentric Coordinates in 2DBarycentric Coordinates in 2D

• Given 3 points instead of 2

• Define 3 barycentric coordinates, α, β, γ• p = α p1 + β p2 + γ p3

• p inside triangle iff 0 · α, β, γ · 1• How do we calculate α, β, γ given p?

p1

p2p3

p

Page 26: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 26

Barycentric Coordinates for TriangleBarycentric Coordinates for Triangle

• Coordinates are ratios of triangle areas

1C

0C

2C

α

βγ

C

( )( )( )( )( )( )

βαγ

β

α

−−==

=

=

1210

10

210

20

210

21

CCCCCC

CCCCCC

CCCCCC

AreaArea

AreaArea

AreaArea

Page 27: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 27

Computing Triangle AreaComputing Triangle Area

• In 3 dimensions– Use cross product– Parallelogram formula– Area(ABC) = (1/2)|(B – A) £ (C – A)|– Optimization: project, use 2D formula

• In 2 dimensions– Area(x-y-proj(ABC)) =

(1/2)((bx – ax)(cy – ay) – (cx – ax) (by – ay))

A B

C

Page 28: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 28

OutlineOutline

• Ray Casting• Ray-Surface Intersections• Barycentric Coordinates• Reflection and Transmission

Page 29: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 29

Recursive Ray TracingRecursive Ray Tracing

• Calculate specular component– Reflect ray from eye on specular surface– Transmit ray from eye through transparent surface

• Determine color of incoming ray by recursion• Trace to fixed depth• Cut off if contribution

below threshold

Page 30: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 30

Angle of ReflectionAngle of Reflection

• Recall: incoming angle = outgoing angle• r = 2(l ¢ n) n – l• For incoming/outgoing ray negate l !• Compute only for surfaces

with actual reflection• Use specular coefficient• Add specular and diffuse

components

Page 31: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 31

Transmitted LightTransmitted Light

• Index of refraction is relative speed of light• Snell’s law

– ηl = index of refraction for upper material– ηt = index of refraction for lower material

[U = θ]

Note: negate l or t for transmission!

Page 32: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 32

TranslucencyTranslucency

• Diffuse component of transmission• Scatter light on other side of surface• Calculation as for diffuse reflection• Reflection or transmission not perfect• Use stochastic sampling

Page 33: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 33

Ray Tracing Preliminary AssessmentRay Tracing Preliminary Assessment

• Global illumination method• Image-based• Pluses

– Relatively accurate shadows, reflections, refractions

• Minuses– Slow (per pixel parallelism, not pipeline parallelism)– Aliasing– Inter-object diffuse reflections

Page 34: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 34

Ray Tracing AccelerationRay Tracing Acceleration

• Faster intersections– Faster ray-object intersections

• Object bounding volume• Efficient intersectors

– Fewer ray-object intersections• Hierarchical bounding volumes (boxes, spheres)• Spatial data structures• Directional techniques

• Fewer rays– Adaptive tree-depth control– Stochastic sampling

• Generalized rays (beams, cones)

Page 35: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 35

Raytracing Example IRaytracing Example I

www.povray.org

Page 36: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 36

Raytracing Example IIRaytracing Example II

www.povray.org

Page 37: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 37

Raytracing Example IIRaytracing Example II

Saito, Saturn Ring

Page 38: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 38

Raytracing Example IVRaytracing Example IV

www.povray.org

Page 39: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 39

SummarySummary

• Ray Casting• Ray-Surface Intersections• Barycentric Coordinates• Reflection and Transmission

Page 40: Ray Tracing - Carnegie Mellon School of Computer Sciencefp/courses/02-graphics/pdf-color/16-ray.pdf · – Ray tracing (highlights, reflection, transmission) – Radiosity (surface

03/26/2002 15-462 Graphics I 40

PreviewPreview

• Spatial data structures• Ray tracing optimizations• Assignment 6 due Thursday• Assignment 7 (ray tracing) out this week

(probably)