Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision...
Transcript of Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision...
![Page 1: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/1.jpg)
Computer Graphics
Prof. Feng Liu
Fall 2016
http://www.cs.pdx.edu/~fliu/courses/cs447/
11/28/2016
![Page 2: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/2.jpg)
Last time
Splines
2
![Page 3: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/3.jpg)
Today Raytracing Final Exam: 12:30-14:00, December 7, 2016 To-know list available
3
![Page 4: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/4.jpg)
OpenGL Limitations Stream processing of geometry
No random access to geometric information Can’t do any computation that requires all the geometry at once
Rasterization is limited We saw many ways to represent objects – not all can be rasterized Cannot provide rasterizers for every form of geometry
Everything get rasterized and drawn Figuring out what you can see before rasterizing is possible but
hard
Computation loops over geometry, then pixels for all objects { for all pixels in object … }
4
![Page 5: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/5.jpg)
Raytracing Cast rays out from the eye, through each pixel, and
determine what the rays hit Builds the image pixel by pixel, one at a time
Cast additional rays from the hit point to determine the pixel color
Rays test visibility – what do I see from this point in this direction? Ray casting is widely used in graphics to test visibility
5
![Page 6: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/6.jpg)
Raytracing
Shadow rays
Reflection ray
Transmitted ray
Image
6
![Page 7: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/7.jpg)
Recursive Ray Tracing When a reflected or refracted ray hits a surface,
repeat the whole process from that point Send out more shadow rays Send out new reflected ray (if required) Send out a new refracted ray (if required) Generally, reduce the weight of each additional ray when
computing the contributions to surface color Stop when the contribution from a ray is too small to notice
The result is a ray tree
7
![Page 8: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/8.jpg)
Ray Tree
Eye
A
B
C
A L1
L2
L2 L1
B
L2 L1
C
L2 L1
8
![Page 9: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/9.jpg)
PCKTWTCH by Kevin Odhner, POV-Ray
9
![Page 10: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/10.jpg)
Kettle, Mike Miller, POV-Ray
10
![Page 11: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/11.jpg)
11
![Page 12: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/12.jpg)
Raytracing Implementation Raytracing breaks down into two tasks:
Constructing the rays to cast Intersecting rays with geometry
The former problem is simple vector arithmetic The intersection problem arises in many areas of
computer graphics Collision detection Other rendering algorithms
Intersection is essentially root finding (as we will see) Any root finding technique can be applied
12
![Page 13: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/13.jpg)
Constructing Rays Define rays by an initial point and a direction Eye rays: Rays from the eye through a pixel Shadow rays: Rays from a point on a surface to a light
If the ray hits something before it gets to the light, then the point is in shadow
Reflection rays: Rays from a point on a surface in the reflection direction Only for reflective surfaces
Transmitted rays: Rays from a point on a transparent surface through the surface Use Snell’s law to get refraction direction
13
![Page 14: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/14.jpg)
Eye Rays
(0,0,0)
Eye FOV/2 Find this point to get ray. Transform from view to world space.
Image
14
![Page 15: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/15.jpg)
Ray-Object Intersections Aim: Find the parameter value, ti, at which the ray first meets
object i Transform the ray into the object’s local coordinate system
Makes ray-object intersections generic: ray-sphere, ray-plane, …
Write the surface of the object implicitly: f(x)=0 Unit sphere at the origin is x•x-1=0 Plane with normal n passing through origin is: n•x=0
Put the ray equation in for x Result is an equation of the form f(t)=0 where we want t Now it’s just root finding
15
![Page 16: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/16.jpg)
Ray-Sphere Intersection
Quadratic in t 2 solutions: Ray passes through sphere - take minimum value that
is > 0 1 solution: Ray is tangent - use it if >0 0 solutions: Ray does not hit sphere
( ) ( )( ) ( ) ( ) 012:
01 :Substitute01 :Sphere
)( :Ray
0002
00
0
=−•+•+•
=−+•+=−•+=
xxdxdddxdx
xxdxx
tttt
tt
16
![Page 17: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/17.jpg)
Ray-Plane Intersections
To do polygons, intersect with plane then do point-in-polygon test…
Faster tests for triangles, but this is the start point
( )( )
dnxn
xndndxn
xndxx
••−
=
=•+•=+•
=•+=
0
0
0
0
:
0:0 :Substitute
0 :Plane)( :Ray
t
tt
tt
17
![Page 18: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/18.jpg)
Details Must find first intersection of ray from the eye
Find all candidate intersections, sort them and take soonest Techniques for avoiding testing all objects Bounding boxes that are cheap to test Octrees for organizing objects in space
Take care to eliminate intersections behind the eye Same rules apply for reflection and transmission rays
Shadow ray just has to find any intersection shadowing the light source Speedup: Keep a cache of shadowing objects - test those first
18
![Page 19: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/19.jpg)
Mapping Techniques All raytracing calculations are done for every pixel Raytracing provides a wealth of information about the
visible surface point: Position, normal, texture coordinates, illuminants, color…
Raytracing also has great flexibility Every point is computed independently, so effects can easily
be applied on a per-pixel basis Reflection and transmission and shadow rays can be
manipulated for various effects Even the intersection point can be modified
19
![Page 20: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/20.jpg)
Bump Mapping Examples
20
![Page 21: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/21.jpg)
Soft Shadows Light sources that extend over an area (area light
sources) should cast soft-edged shadows Some points see all the light - fully illuminated Some points see none of the light source - the umbra Some points see part of the light source - the penumbra
To ray-trace area light sources, cast multiple shadow rays Each one to a different point on the light source Weigh illumination by the number that get through
21
![Page 22: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/22.jpg)
Soft Shadows
Umbra Penumbra Penumbra
22
![Page 23: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/23.jpg)
Soft Shadows
All shadow rays go through
No shadow rays go through
Some shadow rays go through
23
![Page 24: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/24.jpg)
Ray-Tracing and Sampling Basic ray-tracing casts one ray through each pixel,
sends one ray for each reflection, one ray for each point light, etc
This represents a single sample for each point, and for an animation, a single sample for each frame
Many important effects require more samples: Motion blur: A photograph of a moving object smears the
object across the film (longer exposure, more motion blur) Depth of Field: Objects not located at the focal distance
appear blurred when viewed through a real lens system Rough reflections: Reflections in a rough surface appear
blurred 24
![Page 25: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/25.jpg)
Distribution Raytracing Distribution raytracing casts more than one ray for
each sample Originally called distributed raytracing, but the name’s
confusing
How would you sample to get motion blur? How would you sample to get rough reflections? How would you sample to get depth of field?
25
![Page 26: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/26.jpg)
Distribution Raytracing Multiple rays for each pixel, distributed in time, gives
you motion blur Object positions have to vary continuously over time
Casting multiple reflection rays at a reflective surface and averaging the results gives you rough, blurry reflections
Simulating multiple paths through the camera lens system gives you depth of field
26
![Page 27: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/27.jpg)
Motion Blur
27
![Page 28: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/28.jpg)
Depth of Field
28
http://www.cambridgeincolour.com/tutorials/depth-of-field.htm
![Page 29: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/29.jpg)
Distribution Raytracing Depth of Field
From Alan Watt, “3D Computer Graphics”
29
![Page 30: Computer Graphicsweb.cecs.pdx.edu/~fliu/courses/cs447/notes/Lecture17.pdfcomputer graphics Collision detection Other rendering algorithms Intersection is essentially root finding (as](https://reader033.fdocuments.in/reader033/viewer/2022051802/5af548377f8b9a8d1c8d584f/html5/thumbnails/30.jpg)
Next Time
Animation
30