# Our Friend the Dot Product - PowerPoint PPT Presentation

Title:

## Our Friend the Dot Product

Description:

### Essential Math for Games. One of a class of vector functions known as inner products ... Essential Math for Games. In Euclidean space, define dot product of ... – PowerPoint PPT presentation

Number of Views:99
Avg rating:3.0/5.0
Slides: 37
Provided by: jimvan
Category:
Tags:
Transcript and Presenter's Notes

Title: Our Friend the Dot Product

1
Our Friend the Dot Product
• Jim Van Verth (jim_at_essentialmath.com)

2
So Why The Dot Product?
• Probably the single most important vector
operation
• The Ginzu knife of graphics
• It slices, it dices, it has 1001 uses
• Understanding is a 3-D sword
• So
• Define
• Utilize

3
Background
• Assume you know something about vectors
• Will be skipping some steps for time
• Just follow along

4
What is the Dot Product?
• One of a class of vector functions known as inner
products
• Means that it satisfies various axioms
• Useful for dot product math

5
Definition 1 Coordinant-Free
• In Euclidean space, define dot product of vectors
a b as
• where
• length
• ? angle between a b

a
?
b
6
Definition 2 Coordinant-Dependant
• By using Law of Cosines, can compute
coordinate-dependant definition in 3-space
• or 2-space

7
Use 1 Measure Angles
• Look at def 1
• Can rearrange to compute angle between vectors
• A little expensive cheaper tests available

8
Use 1 Measure Angles
• Rather than determining exact angle, can use sign
to classify angle
• a and b are always non-negative, so sign
depends on cos ?, therefore
• a b gt 0 if angle lt 90
• a b 0 if angle 90 (orthogonal)
• a b lt 0 if angle gt 90

9
Angles View Testing
• Simple view culling
• Suppose have view vector v and vector t to object
in scene (t o - e)
• If v t lt 0, object behind us, cull

e
v
t
o
10
Angles View Testing
• Note doesnt work well for
• large objects
• objects close to view plane
• Best for AI, not rendering

e
v
t
o
11
Angles Collision Response
• Have normal n (from object A to object B),
relative velocity va-vb
• Three cases of contact
• Separating
• (va-vb) n lt 0
• Colliding
• (va-vb) n gt 0
• Resting
• (va-vb) n 0

12
Angles View Cone
• Test against view cone store cosine of view
angle and compare
• If d L lt cos ?v, cull
• Nice for spotlights
• Must normalize

L
?v

d
13
Angles Collinear Test
• Test for parallel vectors
• If v and w parallel pointing same direction, v
w 1
• If v and w parallel pointing opposite
direction, v w -1
• Has problems w/floating point, though
• And you have to normalize

14
Use 2 Projection
• Suppose want to project a onto b
• Is part of a pointing along b
• Represented as

a
?
b
15
Use 2 Projection
a
• From trig
• Now multiply by normalized b, so

?
b
16
Use 2 Projection
• So have
• If b is already normalized (often the case), then
becomes

17
Projection OBB Collision
• Idea determine if separating plane between boxes
exists
• Project box extent onto plane normal, test
against projection btwn centers

c
a
b
b?v
a?v
c?v
18
Projection OBB Collision
• To ensure maximum extents, take dot product using
only absolute values
• Check against axes for both boxes, plus cross
products of all axes
• See Gottschalk for more details

19
Use 2 Projection
• Can use this to break a into components parallel
and perpendicular to b

a
b
20
Projection Line-Point Distance
• Line defined by point P and vector v
• Break vector w Q P into w? and w
• w (w ? v) v
• w?2 w2 w2

Q
w?
w
w

P
v
21
Projection Line-Point Distance
• Final formula
• If v isn't normalized

22
Use 3 Hidden Dot Products
• There are dot products everywhere just need to
know to look for them
• Examples
• Plane equation
• Matrix multiplication
• Luminance calculation

23
Planes
• Defined by
• normal n (a, b, c)
• point on plane P0(x0, y0, z0)
• Plane equation
• axbyczd 0
• d-(ax0 by0 cz0)
• Dot products!

24
Planes
• Why a dot product?
• Plane is all points P (x, y, z) passing through
P0 and orthogonal to normal
• Can express as

n
P
P0
25
Planes
• Plane is all points P (x, y, z) such that
• Can rewrite as
• or

26
Planes
• Can use plane equation to test locality of point
• If n is normalized, gives distance to plane

n
axbyczd gt 0
axbyczd 0
axbyczd lt 0
27
Planes
• Project point to plane
• Assuming n normalized,

n
P
v
P0
28
Planes
• Want to mirror point across a plane
• Take dot product of vector with normal
• Subtract twice from vector

n
v
29
Matrix Product
or
• In general, element ABij is dot product of row i
from A and column j from B

30
Matrix Product
• So what does this mean?
• Beats me but its cool

31
Luminance
• Can convert RGB color to single luminance value
by computing
• In this case, a projection of sorts
• Luminance vector not normalized

32
Use 4 Perpendicular Dot Product
• 2D cross product, sort of
• Perpendicular takes 2D vector and rotates it 90
ccw
• Take another vector and dot it, get
• Looks like z term from cross product

33
Perpendicular Dot Product
• Result is
• So if you want to compute signed angle from v0 to
v1, could do
• (works for 3D, too, just need to get length of
cross product)

34
Perpendicular Dot Product
• Another use sign of perp dot product indicates
turning direction
• Have velocity v, direction to target d
• If v? d is positive, turn left
• If negative, turn right

v
v
d
d
v?
v?
35
Conclusion
• Dot product is cool
• Dot product has many uses
• Use it heavily and often

36
References
• Van Verth, James M. and Lars Bishop, Essential
Mathematics for Games and Interactive
Applications, Morgan Kaufmann, 2004.
• Anton, Howard and Chris Rorres, Elementary
Linear Algebra, 7th Ed, Wiley Sons, 1994.
• Axler, Sheldon, Linear Algebra Done Right,
Springer Verlag, 1997.