ray tracing basics
play

Ray Tracing Basics CSE 681 Autumn 11 Han-Wei Shen Forward Ray - PowerPoint PPT Presentation

Ray Tracing Basics CSE 681 Autumn 11 Han-Wei Shen Forward Ray Tracing We shoot a large number of photons Problem? Backward Tracing For every pixel Construct a ray from the eye For every object in the scene Find intersection with the ray


  1. Ray Tracing Basics CSE 681 Autumn 11 Han-Wei Shen

  2. Forward Ray Tracing • We shoot a large number of photons Problem?

  3. Backward Tracing For every pixel Construct a ray from the eye For every object in the scene Find intersection with the ray Keep if closest

  4. The Viewing Model • Based on a simple Pinhole Camera model  Perfect image if hole  Simplest lens model infinitely small  Inverted image  Pure geometric optics  Similar triangles  No blurry simplified pin-hole camera pin-hole camera

  5. Simplified Pinhole Camera  Eye = pinhole, Image plane = box face (re-arrange)  Eye-image pyramid (frustum)  Note that the distance/size of image are arbitrary

  6. Basic Ray Tracing Algorithm for every pixel { cast a ray from the eye for every object in the scene find intersections with the ray keep it if closest } compute color at the intersection point }

  7. Construct a Ray 3D parametric line eye p(t) = eye + t (s-eye) r(t) p t=0 r(t): ray equation eye: eye (camera) position s: pixel position t: ray parameter Question: How to calculate the pixel position P?

  8. Constructing a Ray • 3D parametric line s p (t) = e + t ( s - e ) s-e e * (boldface means vector) • So we need to know e and s • What are given (specified by the user or scene file)? ✓ camera position ✓ camera direction or center of interest ✓ camera orientation or view up vector ✓ distance to image plane ✓ field of view + aspect ratio ✓ pixel resolution

  9. Given Camera Information • Camera • Eye • Look at • Orientation (up vector) v • Image plane n y res • Distance to plane, N e u • Field of view in Y • Aspect ration (X/Y) x res • Screen N • Pixel resolution

  10. Construct Eye Coordinate System • We can calculate the pixel positions much more easily if we construct an eye coordinate system (eye space) first  Known: eye position, center of interest, view-up vector  To find out: new origin and three basis vectors center of interest (COI) Assumption: the direction of view is eye orthogonal to the view plane (the plane that objects will be projected onto)

  11. Eye Coordinate System  Origin: eye position  Three basis vectors: one is the normal vector ( n ) of the viewing plane, the other two are the ones ( u and v ) that span the viewing plane v u Center of interest (COI) eye n (u,v,n should be orthogonal to each other)

  12. Eye Coordinate System  Origin: eye position  Three basis vectors: one is the normal vector ( n ) of the viewing plane, the other two are the ones ( u and v ) that span the viewing plane n is pointing away from the v world because we use right u hand coordinate system Center of interest (COI) eye N = eye – COI n n = N / | N | Remember u,v,n should be all unit vectors (u,v,n should be orthogonal to each other)

  13. Eye Coordinate System  What about u and v? We can get u first - v V_up u u is a vector that is perpendicular to the plane spanned by COI N and view up vector (V_up) eye n

  14. Eye Coordinate System  What about u and v? We can get u first - v V_up u u is a vector that is perpendicular to the plane spanned by COI N and view up vector (V_up) eye n U = V_up x n u = U / | U |

  15. Eye Coordinate System  What about v? Knowing n and u, getting v is easy v V_up u COI eye n

  16. Eye Coordinate System  What about v? Knowing n and u, getting v is easy v V_up u COI eye v = n x u n v is already normalized

  17. Eye Coordinate System  Put it all together Eye space origin: (Eye.x , Eye.y, Eye.z) v V_up u Basis vectors: COI n = (eye – COI) / | eye – COI| eye n u = (V_up x n ) / | V_up x n | v = n x u

  18. Next Step? • Determine the size of the image plane • This can be derived from ✓ distance from the camera to the center of the image plane ✓ Vertical field of view angle ✓ Aspect ratio of the image plane Aspect ratio being Width/Height ★

  19. Image Plane Setup W • Tan( θ v /2) = H / 2d e C • H W = H * aspect_ratio θ v L • C’s position = e - n * d • d L’s position = C - u * W/2 - v * H/2 • Assuming the image resolution is X (horizontal) by Y (vertical), then each pixel has a width of W/X and a height of H/Y • Then for a pixel s at the image pixel (i,j) , it’s location is at L + u * i * W/X + v * j * H/Y

  20. Put it all together • We can represent the ray as a 3D parametric line p (t) = e + t ( s - e ) (now you know how to get s and e) s s-e e • Typically we offset the ray by half of the pixel width and height, i.e, cast the ray from the pixel center incrementing (i,j) (0,0)

  21. Put it all together • We can represent the ray as a 3D parametric line p (t) = e + t ( s - e ) (now you know how to get s and e) s s-e e • Typically we offset the ray by half of the pixel width and height, i.e, cast the ray from the pixel center incrementing (i,j) (0,0)

  22. Ray-Sphere Intersection • Problem: Intersect a line with a sphere ✓ A sphere with center c = ( x c , y c , z c ) and radius R can be represented as: 2 2 2 2 (x- x c ) + (y- y c ) + (z- z c ) - R = 0 ✓ For a point p on the sphere, we can write the above in vector form: 2 ( p - c ) . ( p - c ) - R = 0 (note ‘ . ’ is a dot product) ✓ We can plug the point on the ray p (t) = e + t d 2 ( e +t d - c ) . ( e +t d - c ) - R = 0 and yield 2 2 ( d . d ) t + 2 d. ( e - c )t + ( e - c ).( e - c ) - R = 0

  23. Ray-Sphere Intersection • When solving a quadratic equation 2 at + bt + c = 0 We have • Discriminant • and Solution

  24. Ray-Sphere Intersection b 2 – 4 ac < 0 ⇒ No intersection b 2 – 4 ac > 0 ⇒ Two solutions (enter and exit) b 2 – 4 ac = 0 ⇒ One solution (ray grazes sphere)  Should we use the larger or smaller t value?

  25. Ray-Sphere Intersection b 2 – 4 ac < 0 ⇒ No intersection b 2 – 4 ac > 0 ⇒ Two solutions (enter and exit) b 2 – 4 ac = 0 ⇒ One solution (ray grazes sphere)  Should we use the larger or smaller t value?

  26. Calculate Normal • Needed for computing lighting Q = P( t ) – C … and remember Q/||Q|| C t Q

  27. Calculate Normal • Needed for computing lighting Q = P( t ) – C … and remember Q/||Q|| C t Q normal

  28. Choose the closet sphere • Minimum search problem For each pixel { form ray from eye through the pixel center t min = ∞ For each object { if (t = intersect (ray, object)) { if (t < t min ) { closestObject = object t min = t } } } }

  29. Final Pixel Color if (t min == ∞ ) pixelColor = background color else pixelColor = color of object at d along ray d ray object eye

  30. CSE 681 Ray-Object Intersections: Axis-aligned Box

  31. Ray-Box Intersection Test Y = y2 Z = z2 X = x2 X = x1 Z = z1 Y = y1

  32. Ray-Box Intersection Test Y = y2 Z = z2 X = x2 X = x1 Z = z1 Y = y1

  33. Ray-Box Intersection Test • Intersect ray with each plane – Box is the union of 6 planes Y = y2 x = x 1 , x = x 2 y = y 1 , y = y 2 z = z 1 , z = z 2 Z = z2 X = x2 X = x1 Z = z1 Y = y1

  34. Ray-Box Intersection Test • Intersect ray with each plane – Box is the union of 6 planes Y = y2 x = x 1 , x = x 2 y = y 1 , y = y 2 z = z 1 , z = z 2 Z = z2 X = x2 X = x1 Z = z1 • Ray/axis-aligned plane is easy: Y = y1

  35. Ray-Box Intersection Test • Intersect ray with each plane – Box is the union of 6 planes Y = y2 x = x 1 , x = x 2 y = y 1 , y = y 2 z = z 1 , z = z 2 Z = z2 X = x2 X = x1 Z = z1 • Ray/axis-aligned plane is easy: Y = y1

  36. Ray-Box Intersection Test • Intersect ray with each plane – Box is the union of 6 planes Y = y2 x = x 1 , x = x 2 y = y 1 , y = y 2 z = z 1 , z = z 2 Z = z2 X = x2 X = x1 Z = z1 • Ray/axis-aligned plane is easy: Y = y1 E.g., solve x component: e x + tD x = x 1

  37. Ray-Box Intersection Test Y = y2 Z = z2 X = x2 X = x1 Z = z1 Y = y1

  38. Ray-Box Intersection Test Y = y2 Z = z2 X = x2 X = x1 Z = z1 Y = y1

  39. Ray-Box Intersection Test 1. Intersect the ray with each plane 2. Sort the intersections Y = y2 Z = z2 X = x2 X = x1 Z = z1 Y = y1

  40. Ray-Box Intersection Test 1. Intersect the ray with each plane 2. Sort the intersections 3. Choose intersection Y = y2 Z = z2 X = x2 X = x1 Z = z1 Y = y1

  41. Ray-Box Intersection Test 1. Intersect the ray with each plane 2. Sort the intersections 3. Choose intersection Y = y2 with the smallest t > 0 Z = z2 X = x2 X = x1 Z = z1 Y = y1

  42. Ray-Box Intersection Test 1. Intersect the ray with each plane 2. Sort the intersections 3. Choose intersection Y = y2 with the smallest t > 0 that is within the range Z = z2 X = x2 X = x1 Z = z1 Y = y1

  43. Ray-Box Intersection Test 1. Intersect the ray with each plane 2. Sort the intersections 3. Choose intersection Y = y2 with the smallest t > 0 that is within the range Z = z2 X = x2 X = x1 of the box Z = z1 Y = y1

  44. Ray-Box Intersection Test 1. Intersect the ray with each plane 2. Sort the intersections 3. Choose intersection Y = y2 with the smallest t > 0 that is within the range Z = z2 X = x2 X = x1 of the box Z = z1 Y = y1

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend