8 1 geometric queries for ray tracing
play

8.1 Geometric Queries for Ray Tracing Hao Li - PowerPoint PPT Presentation

Fall 2017 CSCI 420: Computer Graphics 8.1 Geometric Queries for Ray Tracing Hao Li http://cs420.hao-li.com 1 Outline Ray-Surface Intersections Special cases: sphere, polygon Barycentric coordinates 2 Outline Ray-Surface


  1. Fall 2017 CSCI 420: Computer Graphics 8.1 Geometric Queries for Ray Tracing Hao Li http://cs420.hao-li.com 1

  2. Outline • Ray-Surface Intersections • Special cases: sphere, polygon • Barycentric coordinates 2

  3. Outline • Ray-Surface Intersections • Special cases: sphere, polygon • Barycentric coordinates 3

  4. Ray-Surface Intersections • Necessary in ray tracing • General parametric surfaces • General implicit surfaces • Specialized analysis for special surfaces - Spheres - Planes - Polygons - Quadrics 4

  5. Generating Rays • Ray in parametric form p 0 = [ x 0 y 0 z 0 ] T - Origin - d = [ x d y d z d ] T Direction d x d · x d + y d · y d + z d · z d = 1 - Assume is normalized: - p ( t ) = p 0 + d t for t > 0 Ray p ( t ) d p 0 5

  6. Intersection of Rays and Parametric Surfaces • Ray in parametric form p 0 = [ x 0 y 0 z 0 ] T - Origin - d = [ x d y d z d ] T Direction d x d · x d + y d · y d + z d · z d = 1 - Assume is normalized: - p ( t ) = p 0 + d t for t > 0 Ray • Surface in parametric form q = g ( u , v ) = [ x ( u , v ), y ( u , v ), z ( u , v )] - Points - p 0 + d t = g ( u , v ) Solve ( t , u , v ) - Three equations in three unknowns u , v - Possible bounds on 6

  7. Intersection of Rays and Implicit Surfaces • Ray in parametric form p 0 = [ x 0 y 0 z 0 ] T - Origin - d = [ x d y d z d ] T Direction d x d · x d + y d · y d + z d · z d = 1 - Assume is normalized: - p ( t ) = p 0 + d t for t > 0 Ray • Implicit surface q f ( q ) = 0 - All points such that q f ( p 0 + d t ) = 0 - Substitute ray equation for : t - Solve for (univariate root finding) - Closed form if possible, otherwise approximation 7

  8. Outline • Ray-Surface Intersections • Special cases: sphere, polygon • Barycentric coordinates 8

  9. Ray-Sphere Intersection I • Define sphere by c = [ x c y c z c ] T - Center r - Radius - Implicit surface f ( q ) = ( x - x c ) 2 + ( y - y c ) 2 + ( z - z c ) 2 - r 2 = 0 x, y, z • Plug in ray equations for x = x 0 + x d t, y = y 0 + y d t, z = z 0 + z d t • Obtain a scalar equation for t ( x 0 + x d t - x c ) 2 + ( y 0 + y d t - y c ) 2 + ( z 0 + z d t - z c ) 2 - r 2 = 0 9

  10. Ray-Sphere Intersection II • Simplify to where • Solve to obtain t 0 , t 1 √ b 2 − 4 ac t 0 , 1 = − b ± 2 • Check if . Return min ( t 0 , t 1 ) t 0 , t 1 > 0 10

  11. Ray-Sphere Intersection III • For shading (e.g., Phong model), calculate unit normal • Negate if ray originates inside the sphere! • Note possible problems with roundoff errors 11

  12. Simple Optimizations • Factor common subexpressions • Compute only what is necessary b 2 − 4 ac - Calculate , abort if negative - Compute normal only for closest intersection - Other similar optimizations 12

  13. Ray-Quadric Intersection f ( p ) = f ( x, y, z ) = 0 f • Quadric , where is polynomial of order 2 - Sphere, ellipsoid, paraboloid, hyperboloid, cone, cylinder • Closed form solution as for sphere • Combine with CSG 13

  14. Ray-Polygon Intersection I • Assume planar polygon in 3D 1. Intersect ray with plane containing polygon 2. Check if intersection point is inside polygon • Plane a · x + b · y + c · z + d = 0 - Implicit form: n = [ a b c ] T with a 2 + b 2 + c 2 = 1 - Unit normal: 14

  15. Ray-Polygon Intersection II t • Substitute to obtain intersection point in plane • Solve and rewrite using dot product • If , no intersection (ray parallel to plane) n · d = 0 • If , the intersection is behind ray origin t ≤ 0 15

  16. Test if point inside polygon • Use even-odd rule or winding rule • Easier if polygon is in 2D (project from 3D to 2D) • Easier for triangles (tessellate polygons) 16

  17. Point-in-triangle testing 1. Project the point and triangle onto a plane • Pick a plane not perpendicular to triangle (such a choice always exists) • x = 0, y = 0, or z = 0 2. Then, do the 2D test in the plane, by computing barycentric coordinates (follows next) 17

  18. Outline • Ray-Surface Intersections • Special cases: sphere, polygon • Barycentric coordinates 18

  19. Interpolated Shading for Ray Tracing • Assume we know normals at vertices • How do we compute normal of interior point? • Need linear interpolation between 3 points • Barycentric coordinates p 1 p 2 p p 3 19

  20. Barycentric Coordinates in 1D • Linear interpolation p ( t ) = (1 - t ) p 1 + t p 2 , 0 ≤ t ≤ 1 p = α p 1 + β p 2 , α + β = 1 p is between p 1 and p 2 iff 0 ≤ α , β ≤ 1 • Geometric intuition - Weigh each vertex by ratio of distances from ends p 1 p p 2 • α , β are called barycentric coordinates 20

  21. Barycentric Coordinates in 2D • Now we have 3 points instead of 2 p 1 p 2 p p 3 • Define 3 barycentric coordinates α , β , γ • p = α p 1 + β p 2 + γ p 3 • p inside triangle iff 0 ≤ α , β , γ ≤ 1 , α + β + γ = 1 • How do we calculate α , β , γ ? 21

  22. Barycentric Coordinates for Triangle • Coordinates are ratios of triangle areas p 1 p α = Area( pp 2 p 3 ) / Area( p 1 p 2 p 3 ) p 2 p 3 β = Area( p 1 pp 3 ) / Area( p 1 p 2 p 3 ) γ = Area( p 1 p 2 p ) / Area( p 1 p 2 p 3 ) = 1 - α - β • Areas in these formulas should be signed - Clockwise (-) or anti-clockwise (+) orientation of the triangle - Important for point-in-triangle test 22

  23. Compute Triangle Area in 3D • Use cross product C • Parallelogram formula B A • Area( ABC ) = (1/2) |( B - A ) × ( C - A )| • How to get correct sign for barycentric coordinates? - Compare directions of cross product ( B - A ) × ( C - A ) for triangles pp 2 p 3 vs p 1 p 2 p 3 , etc. (either 0 (sign+) or 180 deg (sign-) angle) - Easier alternative: project to 2D, use 2D formula (projection to 2D preserves barycentric coordinates) 23

  24. Compute Triangle Area in 2D • Suppose we project the triangle ABC to x - y plane • Area of the projected triangle in 2D with the correct sign: (1/2)(( b x - a x )( c y - a y ) - ( c x - a x )( b y - a y )) 24

  25. Outline • Ray-Surface Intersections • Special cases: sphere, polygon • Barycentric coordinates 25

  26. http://cs420.hao-li.com Thanks! 26

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