Download - Mathematical Topics
Mathematical Topics
Review of some concepts: trigonometry aliasing coordinate systems homogeneous coordinates
matrices, quaternions
Vectors
v = ai + bj + ckDescribes point or displacement in n-
dimensional spaceAddition, subtractionMultiplication
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, arctanRelationships between angles and lengths of
sides of triangles"Old Hands Always Help One Another"
mnemonic for right trianglesAxes form right triangle
x = r cos θy = r sin θθ
r
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 scalarsCan be thought of as "vector of vectors"Encodes a set of linear equations
"linear" because each variable has power 1 max
Main operation: multiplicationAddition 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 rotationsEuler: 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, redundantProblem: 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 additionq * 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
Quaternions: generalized complex numbers
Im
Re
4D Complex Numbers
i2 = j2 = k2 = -1ij = kji = -ka + bi + cj + dk4D 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 angleQuaternion 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 vWhy 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 courseDisadvantages
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 matchreal signal
Moire pattern
Sampling Limit
Need two samples per period of signalIf signal has maximum frequency < B, spatial
sampling rate 1/(2B) sufficient
In practice, output sampling (display) fixedNeed to control signal “Don’t wear stripes on television”
Antialiasing
Pixel resolution fixedBut, 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