1 / 18

Graphics Transformation Pipeline and Quaternion Orientations

Understand the technical background of display pipelines, transformations, round-off errors, and orientation representations using quaternions. Learn about viewing pipeline transformation between spaces, object space transformations, and world space transformations.

gilliamj
Download Presentation

Graphics Transformation Pipeline and Quaternion Orientations

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. Technical Background Display pipeline Transformations and round-off errors Orientation representation Quaternions

  2. Viewing Pipeline Transformation between spaces Object space transformations transformations World space Eye space Map to eye space perspective Clipping space Perspective divide Image space Viewport mapping Screen space

  3. Ray Tracing Object space transformations transformations World space Eye space Map to eye space Trace rays Screen space

  4. Transformations Px a b c d Py e h f i Pz j k l m 1 n o p q

  5. Transformations 1 0 0 Tx Sx 0 0 0 0 0 1 Ty 0 0 Sy 0 0 0 1 Tz 0 0 Sz 0 0 0 0 1 0 0 0 1

  6. Rotation 1 0 0 0 cos(q) -sin(q) 0 sin(q) cos(q) We know how to rotate about the global axes cos(q) 0 sin(q) 0 1 0 -sin(q) 0 cos(q) cos(q) -sin(q) 0 sin(q) cos(q) 0 0 0 1

  7. Transformation round-off errors Rotate 5 degrees every frame M = 5 degree Rotation matrix Apply M to data in world space

  8. Transformation round-off errors Rotate 5 degrees every frame m = 5 degree c = 0 degrees c = c + m M = rotation matrix Of c degrees Apply M to data in world space

  9. Transformation round-off errors Rotate 5 degrees every frame M = 5 degree Rotation matrix C = Identity matrix C = C * M Apply C to data

  10. Transformation round-off errors Rotate 5 degrees every frame m = 5 degree M = 5 degree Rotation matrix M = 5 degree Rotation matrix c = 0 degrees c = c + m C = Identity matrix Apply M to data in world space M = rotation matrix Of c degrees C = C * M Apply M to data in world space Apply C to data

  11. Orientation Rotation about principle axes - fixed angles Rotation about object’s axes - Euler angles Axis-angle rotation Quaternion

  12. Orientation 1 0 0 0 cos(q) -sin(q) 0 sin(q) cos(q) We know how to rotate about the global axes cos(q) 0 sin(q) 0 1 0 -sin(q) 0 cos(q) cos(q) -sin(q) 0 sin(q) cos(q) 0 0 0 1

  13. y x z Fixed angles Rotate about global axes in a fixed order Rotating about global axes is what the rotation matrices do Can use most any triple of axes Rotate about x, then y, then z (10, 90, -45)

  14. y x z Gimbal lock From some orientations, can’t do some rotations (0,90,0) Can’t rotate around x-axis

  15. y x z Euler angles Rotate about axes of object Can use most any triple of axes Roll, Pitch, Yaw (10, 90, -45)

  16. Equivalence of Fixed angles and Euler angles Ru(a) = Rx(a) Rv (b)Ru (a) = Rx(a)Ry (b)Rx (- a)Rx (a) = Rx (a)Ry (b) Rw (g) Rv (b)Ru (a) = Rx (a)Ry (b) Rz (g)

  17. Quaternions Keep axis-angle orientation as 4-tuple Q = (s, x, y, z) = (s,v) Q1*Q2 = (s1,v1)*(s2,v2) = (s1*s2+v1*v2 , s1*v2 + s2*v1 + v1xv2) Q1+Q2 = (s1,v1)+(s2,v2) = (s1+s2, v1+v2)

  18. Quaternions Keep axis-angle orientation as 4-tuple (sin(t/2), cos(t/2)*(x,y,z))

More Related