Top Banner
1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics Lecture 15 Ray Tracing Ray Casting Shadow Rays Reflection and Transmission [Ch. 13.2 - 13.3]
29

Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

Feb 10, 2018

Download

Documents

dangdien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

1

Jernej Barbic University of Southern California

CSCI 420 Computer Graphics Lecture 15

Ray Tracing

Ray Casting Shadow Rays Reflection and Transmission [Ch. 13.2 - 13.3]

Page 2: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

2

Local Illumination

•  Object illuminations are independent •  No light scattering between objects •  No real shadows, reflection, transmission •  OpenGL pipeline uses this

Page 3: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

3

Global Illumination

•  Ray tracing (highlights, reflection, transmission) •  Radiosity (surface interreflections) •  Photon mapping •  Precomputed Radiance Transfer (PRT)

Page 4: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

4

Object Space:

•  Graphics pipeline: for each object, render –  Efficient pipeline architecture, real-time –  Difficulty: object interactions (shadows, reflections, etc.)

•  Ray tracing: for each pixel, determine color –  Pixel-level parallelism –  Difficulty: very intensive computation, usually off-line

Image Space:

Page 5: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

5

First idea: Forward Ray Tracing

•  Shoot (many) light rays from each light source •  Rays bounce off the objects •  Simulates paths of photons •  Problem: many rays will

miss camera and not contribute to image!

•  This algorithm is not practical

Page 6: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

6

Backward Ray Tracing

•  Shoot one ray from camera through each pixel in image plane

Page 7: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

7

Generating Rays

•  Camera is at (0,0,0) and points in the negative z-direction

•  Must determine coordinates of image corners in 3D

Page 8: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

8

Generating Rays

y

z x

side view

center of projection (COP)

image plane

field of view angle

(fov)

ray

frontal view

y

z x

h

w

aspect ratio = w / h

Page 9: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

9

Generating Rays

y

z x

side view

COP

image plane

field of view angle

(fov)

y

z x

side view

image plane

f = 1

y = tan(fov/2) z = -1

y = -tan(fov/2) z = -1

y = 0 z = 0

Page 10: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

10

Generating Rays

frontal view

y

z x

h

w

a = aspect ratio = w / h

x = a tan(fov/2) y = tan(fov/2) z = -1

x = a tan(fov/2) y = -tan(fov/2) z = -1

x = -a tan(fov/2) y = tan(fov/2) z = -1

x = -a tan(fov/2) y = -tan(fov/2) z = -1

x = 0 y = 0 z = -1

Page 11: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

11

Determining Pixel Color

1.  Phong model (local as before) 2.  Shadow rays 3.  Specular reflection 4.  Specular transmission

Steps (3) and (4) require recursion.

Page 12: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

12

Shadow Rays

•  Determine if light “really” hits surface point

•  Cast shadow ray from surface point to each light

•  If shadow ray hits opaque object, no contribution from that light

•  This is essentially improved diffuse reflection

n

light source camera

ray

shadow ray (blocked)

image plane

scene object 1

scene object 2

Page 13: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

13

Phong Model

•  If shadow ray can reach to the light, apply a standard Phong model

n l v

light source camera

ray shadow ray (unblocked)

image plane

scene object

Page 14: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

14

Where is Phong model applied in this example? Which shadow rays are blocked?

Page 15: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

15

Reflection Rays

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

Page 16: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

16

Angle of Reflection

•  Recall: incoming angle = outgoing angle •  r = 2(l • n) n – l •  Compute only for surfaces that are reflective

Page 17: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

17

Reflections Example

www.yafaray.org

Page 18: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

18

Transmission Rays

•  Calculate light transmitted through surfaces •  Example: water, glass •  Compute transmission ray •  Call ray tracer recursively to determine color

Page 19: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

19

Transmitted Light

•  Index of refraction is speed of light, relative to speed of light in vacuum –  Vacuum: 1.0 (per definition) –  Air: 1.000277 (approximate to 1.0) –  Water: 1.33 –  Glass: 1.49

•  Compute t using Snell’s law –  ηl = index for upper material –  ηt = index for lower material

Page 20: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

20

Translucency

•  Most real objects are not transparent, but blur the background image

•  Scatter light on other side of surface

•  Use stochastic sampling (called distributed ray tracing)

Page 21: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

21

Transmission + Translucency Example

www.povray.org

Page 22: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

22

The Ray Casting Algorithm

•  Simplest case of ray tracing 1.  For each pixel (x,y), fire a ray from COP through (x,y) 2.  For each ray & object, calculate closest intersection 3.  For closest intersection point p

–  Calculate surface normal –  For each light source, fire shadow ray –  For each unblocked shadow ray, evaluate local Phong model for

that light, and add the result to pixel color

•  Critical operations –  Ray-surface intersections –  Illumination calculation

Page 23: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

23

Recursive Ray Tracing

•  Also 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 24: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

24

Ray Tracing 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 require many bounces

Page 25: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

25

Raytracing Example I

www.yafaray.org

Page 26: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

26

Raytracing Example II

www.povray.org

Page 27: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

27

Raytracing Example III

www.yafaray.org

Page 28: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

28

Raytracing Example IV

www.povray.org

Page 29: Ray Tracing - University of Southern Californiarun.usc.edu/cs420-s14/lec15-ray-tracing/15-ray-tracing.pdf · 1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics

29

Summary

•  Ray Casting •  Shadow Rays and Local Phong Model •  Reflection •  Transmission

•  Next lecture: Geometric queries