+ All Categories
Home > Documents > Mathematical Topics Review of some concepts: trigonometry aliasing coordinate systems ...

Mathematical Topics Review of some concepts: trigonometry aliasing coordinate systems ...

Date post: 27-Dec-2015
Category:
Upload: beverly-mccarthy
View: 220 times
Download: 1 times
Share this document with a friend
27
Mathematical Topics Review of some concepts: trigonometry aliasing coordinate systems homogeneous coordinates matrices, quaternions
Transcript

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 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 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


Recommended