Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12....
Transcript of Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12....
![Page 1: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/1.jpg)
1
Jernej Barbic University of Southern California
CSCI 420 Computer Graphics Lecture 15
Ray Tracing
Ray Casting Shadow Rays Reflection and Transmission [Angel Ch. 11]
![Page 2: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/2.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/3.jpg)
3
Global Illumination
• Ray tracing (highlights, reflection, transmission) • Radiosity (surface interreflections) • Photon mapping • Precomputed Radiance Transfer (PRT)
![Page 4: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/4.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/5.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/6.jpg)
6
Backward Ray Tracing
• Shoot one ray from camera through each pixel in image plane
![Page 7: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/7.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/8.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/9.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/10.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/11.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/12.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/13.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/14.jpg)
14
Where is Phong model applied in this example? Which shadow rays are blocked?
![Page 15: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/15.jpg)
15
Reflection Rays
• For specular component of illumination • Compute reflection ray (recall: backward!) • Call ray tracer recursively to determine color
![Page 16: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/16.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/17.jpg)
17
Reflections Example
www.yafaray.org
![Page 18: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/18.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/19.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/20.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/21.jpg)
21
Transmission + Translucency Example
www.povray.org
![Page 22: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/22.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/23.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/24.jpg)
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 - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/25.jpg)
25
Raytracing Example I
www.yafaray.org
![Page 26: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/26.jpg)
26
Raytracing Example II
www.povray.org
![Page 27: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/27.jpg)
27
Raytracing Example III
www.yafaray.org
![Page 28: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/28.jpg)
28
Raytracing Example IV
www.povray.org
![Page 29: Ray Tracing - Jernej Barbicbarbic.usc.edu/cs420-s20/15-ray-tracing/15-ray-tracing.pdf · 2019. 12. 31. · The Ray Casting Algorithm • Simplest case of ray tracing 1. For each pixel](https://reader036.fdocuments.in/reader036/viewer/2022070213/610e8d3fdfc2ca176e5e767e/html5/thumbnails/29.jpg)
29
Summary
• Ray Casting • Shadow Rays and Local Phong Model • Reflection • Transmission
• Next lecture: Geometric queries