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

Recommend


More recommend