quaternions slides

Download Report

Transcript quaternions slides

Mathematical Topics
 Review of some concepts:
 trigonometry
 aliasing
 coordinate systems
 homogeneous coordinates

matrices, quaternions
Vectors
 v = ai + bj + ck
 Describes point or displacement in n-dimensional
space
 Addition, subtraction
 Multiplication



scalar times vector
dot product
cross product (only in 3D)
Polar Coordinates
r
θ
x = r cos θ
y = r sin θ
Trigonometry
 sin and cos, arcsin, arccos, tan, arctan
 Relationships between angles and lengths of sides of
triangles
 "Old Hands Always Help One Another"

mnemonic for right triangles
 Axes form right triangle
r
θ
x = r cos θ
y = r sin θ
Cylindrical Coordinates
 3D generalization of polar coordinates
r
r
θ
θ
z
x = r cos θ
y = r sin θ
z=z
Spherical Coordinates
θ
φ
r
r
θ
x = r cos θ sin φ
y = r sin θ sin φ
z = r cos φ
θ in (0,2π)
φ in (0,π)
Homogeneous Coordinates
 In Cartesian coordinates, a point is (x, y, z)
 In homogeneous coordinates, (x, y, z, 1)
 generally, (x, y, z, w)
 Homogenization: (x/w, y/w, z/w, 1)
 The following points are equivalent:
(1,2,3,1)
 (2,4,6,2)
 (10,20,30,10)

 Used for translation, revisit when we do perspective
Matrices
 2d array of scalars
 Can be thought of as "vector of vectors"
 Encodes a set of linear equations
 "linear" because each variable has power 1 max
 Main operation: multiplication
 Addition possible (rarely used in graphics)
 A + B given by entrywise addition of A[i][j]+B[i][j]
Matrix Multiplication
 multiply a matrix and a scalar:
 s*A given by entrywise multiplication of s*A[i][j]
 multiply a vector and a matrix
 result is a vector of appropriate length
 multiply two matrices
 result is a matrix of appropriate dimensions
Matrix Operation Properties
 A(BC) = (AB)C
 Multiplication is associative
 AB != BA (in general)
 Multiplication is not commutative
 Implications for coordinate transforms:
 We can gather transforms into a single matrix
 We must do elementary transforms in the proper order –
translate then scale != scale then translate
Matrix Rotations
 We saw how matrices can encode rotations
 Euler: any orientation described by axis of rotation
and magnitude of rotation from canonical
orientation

only need 3 values (2 for unit axis)
 Rotation matrix: 9 elements, redundant
 Problem: composing lots of rotations leads to
transformations that are not rotations


numerical errors inevitable
skew, distort the model
Quaternions
 Mathematical entity made up of a scalar and a
vector
 q = s+ u, q' = c' + u'
 q = s + (xi + yj + zk)
 q + q': entrywise addition
 q * q' = s*s' - u∙u' + (u x u' + s*u' + s' * u)
 Multiplicative identity: 1 + (0,0,0)
Imaginary Numbers
 Recall complex numbers, a+bi, i = sqrt(-1)
 Have geometric interpretation: points in 2D
Im
Re
 Quaternions: generalized complex numbers
4D Complex Numbers
 i2 = j2 = k2 = -1
 ij = k
 ji = -k
 a + bi + cj + dk
 4D imaginary number, or (s, v) with vector
interpretation of i, j, k

arithmetical properties of quaternions follow from the complex
interpretation
Quaternions for Rotation
 A rotation is really just an axis and an angle
 Quaternion as rotation
 q = (s,v)
 vector (axis of rotation)
 scalar (amount of rotation)
 Can convert quaternion to rotation matrix, or apply
to vector directly (XNA supports both)
Quaternion Rotations
 Written as (cos(θ/2), v sin(θ/2))
 "Unit quaternion": q∙q = 1 (if v is a unit vector)
 Maintain unit quaternion by normalizing v
 Why not use s for angle, v for axis directly?
 lack ability to normalize (trivial objection)
 difficult to compose rotations (serious)
 “In mathematics you don't understand things. You
just get used to them.” (von Neumann)
Composing Rotations
 With two rotations, say q1 and q2, we can create a
composite rotation q3 = q1*q2
 XNA: Quaternion.Multiply(q1, q2);
 Note: quaternion multiplication not commutative,
just as rotations are not commutative (order
matters)
Inverting Rotations
 If you do a rotation of s about axis v...
 quaternion (s,v)
 ...you can reverse it by rotating by –s about v
 quaternion (-s,v) – but AVOID
 preferred method is to rotate by s about –v
 superior theoretical properties
 same meaning
 strange fact: (s, v) = (-s, -v) geometrically
Quaternion Rotation
 Arbitrary vector r can be written in quaternion form
as (0, r)
 To rotate a vector r by θ about axis v:
 take q = (cos(θ/2), v sin(θ/2) )
 Let p = (0,r)
 obtain p' from the quaternion resulting from qpq-1
 p' = (0, r')
 r' is the rotated vector r
Quaternion Properties
 Advantages:
 reasonably compact
 normalization enforces legitimate rotations
 interpolation of orientation well-defined

useful for animation, will not use much in this course
 Disadvantages
 no significant technical disadvantages


requires 4 coordinates, possible to use 3
difficult to understand, develop intuition for
Aliasing
 General term nowadays, like "bug":
 visual defect in computer graphics program
 Properly, narrow definition: mismatch between
sampling rate and underlying signal
 Underlying signal: image, texture, synthetic
structure
 Sampling rate: one sample per pixel (?)
["Reflection",
Nathan Sawaya]
Reconstructed signal will not match
real signal
Moire pattern
Sampling Limit
 Need two samples per period of signal
 If signal has maximum frequency < B, spatial
sampling rate 1/(2B) sufficient
 In practice, output sampling (display) fixed
 Need to control signal
 “Don’t wear stripes on television”
Antialiasing
 Pixel resolution fixed
 But, can use more than one sample per pixel
 Antialiasing strategy: compute multiple samples,
average them
 Recent improvements: try not to average across an
edge
Antialiasing
Nvidia 2003