Our Friend the Dot Product - PowerPoint PPT Presentation

About This 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: dot | friend | games | math | product

less

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.
Write a Comment
User Comments (0)
About PowerShow.com