Useful math for graphics and games Lots of math used in graphics and games Various concepts in this course: aliasing coordinate systems
Download
Report
Transcript Useful math for graphics and games Lots of math used in graphics and games Various concepts in this course: aliasing coordinate systems
Useful math for graphics and games
Lots of math used in graphics and games
Various concepts in this course:
aliasing
coordinate systems
homogeneous coordinates
matrices
quaternions
vectors
quantity expressing magnitude and direction
often written with respect to a basis
e.g., basis vectors i, j, k
p = ai + bj + ck
bj
j
i
ai
length of vector == magnitude
p = ai + bj + ck
|p| = sqrt(a*a + b*b + c*c)
Normalized vector: magnitude is 1
Perpendicular to surface
Specified at vertices in usual geometric models
“How do you know if something is a vector?”
In code – look at the type!
XNA: Vector2, Vector3, Vector4
In math (or on slides) – may not have types
→
Has an arrow: x
in bold (sometimes) ax + y
very hard to see, I hate this notation
use domain knowledge
F=ma: which quantities are vectors?
Often you want to extract components of a
vector
If written explicitly, p = ai + bj + ck, can refer to
pieces by symbol
If not…
Index like arrays: p[0]
Subscript to show what piece: px
Special symbol for a unit vector (length 1): ^
so if we have ŵ, by definition |ŵ| = 1
Used sometimes in addition to arrow,
sometimes alone
Add components
p = ai + bj + ck
q = si + tj + uk
p + q = (a + s) i + (b + t) j + (c + u) k
p – q = p + (-q)
vector inverse defined:
q = si + tj + uk
-q = (-s)i + (-t)j + (-u)k
p = ai + bj + ck
q = si + tj + uk
p – q = (a – s) i + (b – t) j + (c – u) k
Dot product
magnitude of projection of one vector onto the other
Cross product
only defined for 3-vectors!
vector perpendicular to arguments, with magnitude
equal to area of the spanned parallelogram
p = ai + bj + ck
q = si + tj + uk
p ∙ q = a*s + b*t + c*u
scalar quantity
p ∙ q = |p| |q| cos θpq
Basic use: projection of one vector onto another
Lighting:
Collisions:
classic diffuse shading: N∙L
amount of velocity in arbitrary direction
Vector reflection: R = V – 2 V ∙ N ( N/|N|)
p = ai + bj + ck
q = si + tj + uk
p x q = (b*u – c*t)i + (c*s – a*u)j + (a*t – b*s)k
new vector perpendicular to both starting vectors
p x q = |p| |q| sin θpq n
Conventionally, right handed coordinate
system used
Obtain surface normal for triangle
use two vectors in plane, cross product is
perpendicular
also note, can find winding order (front or back
facing)
Calculate area of triangle
In physics, cross product appears regularly
torque = F x d
F = q v x B for charged particle in magnetic field