Title: Technical Background
1Technical Background
Display pipeline
Transformations and round-off errors
Orientation representation
Quaternions
2Viewing 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
3Ray Tracing
Object space
transformations
transformations
World space
Eye space
Map to eye space
Trace rays
Screen space
4Transformations
Px
b
d
a
c
Py
i
f
h
e
Pz
m
l
j
k
1
q
p
o
n
5Transformations
0
Tx
1
0
0
0
Sx
0
Ty
1
0
0
0
0
0
Sy
Tz
1
0
0
0
Sz
0
0
1
0
0
0
1
0
0
0
6Rotation
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
7Transformation round-off errors
Rotate 5 degrees every frame
M 5 degree Rotation matrix
Apply M to data in world space
8Transformation 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
9Transformation round-off errors
Rotate 5 degrees every frame
M 5 degree Rotation matrix
C Identity matrix
C C M
Apply C to data
10Transformation 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
11Orientation
Rotation about principle axes - fixed angles
Rotation about objects axes - Euler angles
Axis-angle rotation
Quaternion
12Orientation
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
13Fixed 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)
14Gimbal lock
From some orientations, cant do some rotations
(0,90,0)
Cant rotate around x-axis
15Euler angles
Rotate about axes of object
Can use most any triple of axes
Roll, Pitch, Yaw
(10, 90, -45)
16Equivalence 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)
17Quaternions
Keep axis-angle orientation as 4-tuple
Q (s, x, y, z) (s,v)
Q1Q2 (s1,v1)(s2,v2) (s1s2v1v2 , s1v2
s2v1 v1xv2)
Q1Q2 (s1,v1)(s2,v2) (s1s2, v1v2)
18Quaternions
Keep axis-angle orientation as 4-tuple
(sin(t/2), cos(t/2)(x,y,z))