1 / 57

Transformations in Ray Tracing

Transformations in Ray Tracing. Linear Algebra Review Session. Tonight! Room 2-139 7:30 – 9 PM. Last Time:. Simple Transformations Classes of Transformations Representation homogeneous coordinates Composition not commutative. Today. Motivations Transformations in Modeling

tuyet
Download Presentation

Transformations in Ray Tracing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Transformations in Ray Tracing

  2. Linear Algebra Review Session • Tonight! • Room 2-139 • 7:30 – 9 PM

  3. Last Time: • Simple Transformations • Classes of Transformations • Representation • homogeneous coordinates • Composition • not commutative

  4. Today • Motivations • Transformations in Modeling • Adding Transformations to our Ray Tracer • Constructive Solid Geometry (CSG) • Assignment 2

  5. Modeling • Create / acquire objects • Placing objects • Placing lights • Describe materials • Choose camera position and camera parameters • Specify animation • .... Stephen Duck Stephen Duck

  6. Transformations in Modeling • Position objects in a scene • Change the shape of objects • Create multiple copies of objects • Projection for virtual cameras • Animations

  7. Today • Motivations • Transformations in Modeling • Scene description • Class Hierarchy • Transformations in the Hierarchy • Adding Transformations to our Ray Tracer • Constructive Solid Geometry (CSG) • Assignment 2

  8. Scene Description Scene Materials (much more next week) Camera Lights Background Objects

  9. Simple Scene Description File OrthographicCamera { center 0 0 10 direction 0 0 -1 up 0 1 0 size 5 } Lights { numLights 1 DirectionalLight { direction -0.5 -0.5 -1 color 1 1 1 } } Background { color 0.2 0 0.6 } Materials { numMaterials <n> <MATERIALS> } Group { numObjects <n> <OBJECTS> }

  10. Class Hierarchy Object3D Sphere Group Triangle Cone Cylinder Plane

  11. Why is a Group an Object3D? • Logical organization of scene

  12. Simple Example with Groups Group { numObjects 3 Group { numObjects 3 Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } Group { numObjects 2 Group { Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } Group { Box { <BOX PARAMS> } Sphere { <SPHERE PARAMS> } Sphere { <SPHERE PARAMS> } } } Plane { <PLANE PARAMS> } }

  13. Adding Materials Group { numObjects 3 Group { numObjects 3 Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } Group { numObjects 2 Group { Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } Group { Box { <BOX PARAMS> } Sphere { <SPHERE PARAMS> } Sphere { <SPHERE PARAMS> } } } Plane { <PLANE PARAMS> } }

  14. Adding Materials Group { numObjects 3 Material { <BROWN> } Group { numObjects 3 Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } Group { numObjects 2 Material { <BLUE> } Group { Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } Group { Material { <GREEN> } Box { <BOX PARAMS> } Material { <RED> } Sphere { <SPHERE PARAMS> } Material { <ORANGE> } Sphere { <SPHERE PARAMS> } } } Material { <BLACK> } Plane { <PLANE PARAMS> } }

  15. Adding Transformations

  16. Class Hierarchy with Transformations Object3D Group Cone Cylinder Plane Transform Sphere Triangle

  17. Why is a Transform an Object3D? • To position the logical groupings of objects within the scene

  18. Simple Example with Transforms Group { numObjects 3 Transform { ZRotate { 45 } Group { numObjects 3 Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } } Transform { Translate { -2 0 0 } Group { numObjects 2 Group { Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } Group { Box { <BOX PARAMS> } Sphere { <SPHERE PARAMS> } Sphere { <SPHERE PARAMS> } } } } Plane { <PLANE PARAMS> } }

  19. Nested Transforms Translate Scale Translate Scale p' = T ( S p ) = TS p same as Sphere Sphere Transform { Translate { 1 0.5 0 } Transform { Scale { 2 2 2 } Sphere { center 0 0 0 radius 1 } } } Transform { Translate { 1 0.5 0 } Scale { 2 2 2 } Sphere { center 0 0 0 radius 1 } }

  20. Questions?

  21. Today • Motivations • Transformations in Modeling • Adding Transformations to our Ray Tracer • Transforming the Ray • Handling the depth, t • Transforming the Normal • Constructive Solid Geometry (CSG) • Assignment 2

  22. Incorporating Transforms • Make each primitive handle any applied transformations • Transform the Rays Sphere { center 1 0.5 0 radius 2 } Transform { Translate { 1 0.5 0 } Scale { 2 2 2 } Sphere { center 0 0 0 radius 1 } }

  23. Primitives handle Transforms • Complicated for many primitives r minor r major Sphere { center 3 2 0 z_rotation 30 r_major 2 r_minor 1 } (x,y)

  24. Transform the Ray • Move the ray from World Space to Object Space r minor r major (x,y) r = 1 (0,0) World Space Object Space pWS = M pOS pOS = M-1 pWS

  25. Transform Ray • New origin: • New direction: originOS= M-1originWS directionOS= M-1 (originWS+ 1 * directionWS) - M-1 originWS directionOS= M-1directionWS originWS directionWS qWS = originWS + tWS * directionWS originOS directionOS qOS = originOS + tOS * directionOS World Space Object Space

  26. Transforming Points & Directions • Transform point • Transform direction Homogeneous Coordinates: (x,y,z,w) W = 0 is a point at infinity (direction)

  27. What to do aboutthe depth, t If M includes scaling, directionOS will NOT be normalized • Normalize the direction • Don't normalize the direction

  28. 1. Normalize direction • tOS≠ tWS and must be rescaled after intersection tWS tOS Object Space World Space

  29. 2. Don't normalize direction • tOS=tWS • Don't rely on tOS being true distance during intersection routines (e.g. geometric ray-sphere intersection, a≠1 in algebraic solution) tWS tOS Object Space World Space

  30. Questions?

  31. New component of the Hit class • Surface Normal: unit vector that is locally perpendicular to the surface

  32. Why is the Normal important? • It's used for shading — makes things look 3D! Diffuse Shading (Assignment 2) object color only (Assignment 1)

  33. ± x = Red± y = Green± z = Blue Visualization of Surface Normal

  34. How do we transform normals? nWS nOS World Space Object Space

  35. Transform the Normal like the Ray? • translation? • rotation? • isotropic scale? • scale? • reflection? • shear? • perspective?

  36. Transform the Normal like the Ray? • translation? • rotation? • isotropic scale? • scale? • reflection? • shear? • perspective?

  37. What class of transforms? Projective Affine Similitudes Similitudes Linear Rigid / Euclidean Scaling Identity Identity Reflection Translation Translation Isotropic Scaling Isotropic Scaling Reflection Rotation Rotation Shear Perspective a.k.a. Orthogonal Transforms

  38. Transformation for shear and scale Incorrect Normal Transformation Correct Normal Transformation

  39. More Normal Visualizations Incorrect Normal Transformation Correct Normal Transformation

  40. So how do we do it right? • Think about transforming the tangent plane to the normal, not the normal vector nOS nWS vWS vOS Original Incorrect Correct Pick any vector vOS in the tangent plane, how is it transformed by matrix M? vWS = M vOS

  41. Transform tangent vector v v is perpendicular to normal n: nOST vOS = 0 nOS nOST(M-1 M) vOS = 0 (nOSTM-1) (M vOS) = 0 vOS (nOST M-1) vWS = 0 vWS is perpendicular to normal nWS: nWST= nOS(M-1) nWS nWS=(M-1)T nOS vWS nWSTvWS = 0

  42. Comment ux vx nx uy vy ny uz vz nz xu yu zu xv yv zv xn yn zn • So the correct way to transform normals is: • But why did nWS = MnOS work for similitudes? • Because for similitude / similarity transforms, (M-1)T =lM • e.g. for orthonormal basis: nWS=(M-1)T nOS M = M-1 =

  43. Questions?

  44. Today • Motivations • Transformations in Modeling • World Space vs Object Space • Adding Transformations to our Ray Tracer • Constructive Solid Geometry (CSG) • Assignment 2

  45. Constructive Solid Geometry (CSG) Given overlapping shapes A and B: Union Intersection Subtraction

  46. For example:

  47. How can we implement CSG? Union Intersection Subtraction Points on B, Outside of A Points on A, Outside of B Points on B, Inside of A Points on A, Inside of B

  48. Collect all the intersections Union Intersection Subtraction

  49. Implementing CSG • Test "inside" intersections: • Find intersections with A, test if they are inside/outside B • Find intersections with B,test if they are inside/outside A • Overlapping intervals: • Find the intervals of "inside"along the ray for A and B • Compute union/intersection/subtractionof the intervals

  50. "Fredo's First CSG Raytraced Image"

More Related