Download presentation

Presentation is loading. Please wait.

1
Our Friend the Dot Product Jim Van Verth

2
Essential Math for Games 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
Essential Math for Games Background Assume you know something about vectors Will be skipping some steps for time Just follow along

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

5
Essential Math for Games In Euclidean space, define dot product of vectors a & b as where || || == length == angle between a & b Definition #1: Coordinant-Free a b

6
Essential Math for Games Definition #2: Coordinant-Dependant By using Law of Cosines, can compute coordinate-dependant definition in 3- space: or 2-space:

7
Essential Math for Games Use #1: Measure Angles Look at def #1: Can rearrange to compute angle between vectors: A little expensive – cheaper tests available

8
Essential Math for Games 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 > 0 if angle < 90° a b = 0 if angle = 90° (orthogonal) a b 90°

9
Essential Math for Games Angles: View Testing Simple view culling Suppose have view vector v and vector t to object in scene ( t = o - e ) If v t < 0, object behind us, cull v t o e

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

11
Essential Math for Games Angles: Collision Response Have normal n (from object A to object B), relative velocity v a - v b Three cases of contact: Separating (v a - v b ) n < 0 Colliding (v a - v b ) n > 0 Resting (v a - v b ) n = 0

12
Essential Math for Games Angles: View Cone Test against view cone – store cosine of view angle and compare If d L < cos v, cull Nice for spotlights Must normalize L d v ^ ^ ^ ^

13
Essential Math for Games 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
Essential Math for Games Use #2: Projection Suppose want to project a onto b Is part of a pointing along b Represented as a b

15
Essential Math for Games Use #2: Projection From trig Now multiply by normalized b, so a b

16
Essential Math for Games Use #2: Projection So have If b is already normalized (often the case), then becomes

17
Essential Math for Games Projection: OBB Collision Idea: determine if separating plane between boxes exists Project box extent onto plane normal, test against projection btwn centers c v b v a v a b c

18
Essential Math for Games 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
Essential Math for Games Use #2: Projection Can use this to break a into components parallel and perpendicular to b a b

20
Essential Math for Games 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 = ||w|| 2 – ||w || || 2 ^ ^ ^ v Q P w w || w ^

21
Essential Math for Games Projection: Line-Point Distance Final formula: If v isn't normalized:

22
Essential Math for Games 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
Essential Math for Games Planes Defined by normal n = (a, b, c) point on plane P 0 =(x 0, y 0, z 0 ) Plane equation ax+by+cz+d = 0 d=-(ax 0 + by 0 + cz 0 ) Dot products!

24
Essential Math for Games Planes Why a dot product? Plane is all points P = (x, y, z) passing through P 0 and orthogonal to normal Can express as n P P0P0

25
Essential Math for Games Planes Plane is all points P = (x, y, z) such that Can rewrite as or

26
Essential Math for Games Planes Can use plane equation to test locality of point If n is normalized, gives distance to plane n ax+by+cz+d > 0 ax+by+cz+d = 0 ax+by+cz+d < 0

27
Essential Math for Games Planes Project point to plane Assuming n normalized, n v v || P P0P0 P

28
Essential Math for Games v - 2v || -v || Planes Want to mirror point across a plane Take dot product of vector with normal Subtract twice from vector n v v ||

29
Essential Math for Games Matrix Product In general, element AB ij is dot product of row i from A and column j from B or

30
Essential Math for Games Matrix Product So what does this mean? Beats me… but its cool

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

32
Essential Math for Games 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
Essential Math for Games Perpendicular Dot Product Result is So if you want to compute signed angle from v 0 to v 1, could do (works for 3D, too, just need to get length of cross product)

34
Essential Math for Games 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 Perpendicular Dot Product v d d v v v

35
Essential Math for Games Conclusion Dot product is cool Dot product has many uses Use it heavily and often

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

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google