Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computational Geometry & Collision detection

Similar presentations


Presentation on theme: "Computational Geometry & Collision detection"— Presentation transcript:

1 Computational Geometry & Collision detection
Vectors, Dot Product, Cross Product, Basic Collision Detection George Georgiev Telerik Corporation

2 Table of Contents Vectors The vector dot product
Extended revision The vector dot product The vector cross product Collision detection In Game programming Sphere collision Bounding volumes AABBs

3 Revision, Normals, Projections
Vectors Revision, Normals, Projections

4 A Vectors – revision Ordered sequences of numbers
OA (6, 10, 18) – 3-dimensional OA (6, 10) – 2-dimensional OA (6, 10, 18, -5) – 4-dimensional Have magnitude and direction A

5 Vectors – revision No location Can represent points in space
Wherever you need them Can represent points in space Points are vectors with a beginning at the coordinate system center Example: Point A(5, 10) describes the location (5, 10) Vector U(5, 10), beginning at (0, 0), describes ‘the path’ to the location (5, 10)

6 Vectors – revision All vectors on the same line are called collinear
Can be derived by scaling any vector on the line E.g.: A(2, 1), B(3, 1.5), C(-1, -0.5) are collinear Two vectors, which are not collinear, lie on a plane and are called coplanar => Two non-collinear vectors define a plane Three vectors, which are not coplanar, define a space

7 Vectors – revision Collinear vectors: Coplanar vectors:

8 Vectors – revision Vectors defining a 3D vector space

9 Vectors – revision Perpendicular vectors Constitute a right angle
Deriving a vector, perpendicular to a given one: Swap two of the coordinates of the given vector (one of the swapped coordinates can’t be zero) Multiply ONE of the swapped coordinates by -1 Example: A (5, 10) given => A’(-10, 5) is perpendicular to A V (3, 4, -1) given => V’(3, 1, 4) is perpendicular to V

10 Vectors – revision Normal vectors to a surface
Constitute a right angle with flat surfaces Perpendicular to at least two non-collinear vectors on the plane Constitute a right angle with the tangent to curved surfaces

11 Vectors – revision Projection of a vector on another vector

12 Definition, Application, Importance
Vector Dot Product Definition, Application, Importance

13 Vector dot product Dot Product (a.k.a. scalar product)
Take two equal-length sequences e.g. sequence A (5, 6) and sequence B (-3, 2) Multiply each element of A with each element of B A [i] * B [i] Add the products Dot Product(A, B) = A[0] * B[0] + A[1] * B[1] + … + A[i] * B[i] + … + A[n-1] * B[n-1]

14 Vector dot product Dot Product (2) Example: Result
A (5, 6) B (-3, 2) = 5 * (-3) + 6 * 2 = = -3 Result A scalar number

15 Vector dot product Dot product of coordinate vectors
Take two vectors of equal dimensions Apply the dot product to their coordinates 2D Example: A(1, 2) . B(-1, 1) = 1*(-1) + 2*1 = 1 3D Example: A(1, 2, -1) . B(-1, 1, 5) = 1*(-1) + 2*1 + (-1) * 5 = -4 Simple as that

16 Vector dot product Meaning in Euclidean geometry
If A(x1, y1, …), B(x2, y2, …) are vectors theta is the angle, in radians, between A and B Dot Product (A, B) = A . B = = |A|*|B|*cos(theta) Applies to all dimensions (1D, 2D, 3D, 4D, … nD)

17 Vector dot product Meaning in Euclidean geometry (2)
If U and V are unit vectors, then U . V = cosine of the angle between U and V the oriented length of the projection of U on V If U and V are non-unit vectors ( U . V ) divided by |U|*|V| = cosine of the angle between U and V ( U . V ) divided by |V| = the oriented length of the projection of U on V

18 Vector dot product Consequences Applications
If A . B > 0, A and B are in the same half-space If A . B = 0, A and B are perpendicular If A . B < 0, A and B are in different half-spaces Applications Calculating angles Calculating projections Calculating lights Etc…

19 Dot Product Computation
* Dot Product Computation Live Demo (c) 2008 National Academy for Software Development - All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

20 Definition, Features, Application
Vector Cross Product Definition, Features, Application

21 Vector cross product Cross product
Operates on vectors with up to 3 dimensions Forms a determinant of a matrix of the vectors Result – depends on the dimension In 2D – a scalar number (1D) In 3D – a vector (3D) Not defined for 1D and dimensions higher than 3

22 2D Vector cross product 2D Cross product
Take the vectors U(x1, y1) and V(x2, y2) Multiply their coordinates across and subtract: U(x1, y1) x V(x2, y2) = (x1 * y2) – (x2 * y1) Result A scalar number

23 2D Vector cross product Scalar meaning in Euclidean geometry
If U(x1, y1) and V(x2, y2) are 2D vectors theta is the angle between U and V Cross Product (U, V) = U x V = = |U| * |V| * sin(theta) |U| and |V| denote the length of U and V Applies to 2D and 3D

24 2D Vector cross product Scalar meaning in Euclidean geometry (2)
For every two 2D vectors U and V U x V = the oriented face of the parallelogram, defined by U and V For every three 2D points A, B and C If U x V = 0, then A, B and C are collinear If U x V > 0, then A, B and C constitute a ‘left turn’ If U x V < 0, then A, B and C constitute a ‘right turn’

25 2D Vector cross product Applications Graham scan (2D convex hull)
Easy polygon area computation Cross product divided by two equals oriented (signed) triangle area 2D orientation ‘left’ and ‘right’ turns

26 2D Cross Product Computation
* 2D Cross Product Computation Live Demo (c) 2008 National Academy for Software Development - All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

27 3D Vector cross product 3D Cross product
Take two 3D vectors U(x1, y1, z1) and V(x2, y2, z2) Calculate the following 3 coordinates x3 = y1*z2 – y2*z1 y3 = z1*x2 – z2*x1 z3 = x1*y2 – x2*y1 Result A 3D vector with coordinates (x3, y3, z3)

28 3D Vector cross product Meaning in Euclidean geometry The magnitude
Always positive (length of the vector) Has the unsigned properties of the 2D dot product The vector Perpendicular to the initial vectors U and V Normal to the plane defined by U and V Direction determined by the right-hand rule

29 3D Vector cross product The right-hand rule
Index finger points in direction of first vector (a) Middle finger points in direction of second vector (b) Thumb points up in direction of the result of a x b

30 3D Vector cross product Unpredictable results occur with Applications
Cross product of two collinear vectors Cross product with a zero-vector Applications Calculating normals to surfaces Calculating torque (physics)

31 3D Cross Product Computation
* 3D Cross Product Computation Live Demo (c) 2008 National Academy for Software Development - All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

32 Computational geometry
? ? ? ? ? Questions? ? ? ? ? ? ?

33 Basics, Methods, Problems, Optimization
Collision detection Basics, Methods, Problems, Optimization

34 Collision detection Collisions in Game programming
Any intersection of two objects’ geometry Raise events in some form Usually the main part in games Collision response – deals with collision events

35 Collision detection Collision objects Can raise collision events Types
Spheres Cylinders Boxes Cones Height fields Triangle meshes

36 Collision detection Sphere-sphere collision Easiest to detect Used in
particle systems low-accuracy collision detection Collision occurrence: Center-center distance less than sum of radiuses Optimization Avoid computation of square root

37 Sphere-sphere collision detection
* Sphere-sphere collision detection Live Demo (c) 2008 National Academy for Software Development - All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

38 Collision detection Triangle meshes collision Very accurate
Programmatically heavy Computation heavy (n2) Rarely needed

39 Collision detection Collision detection in Game programming
Combines several collision models Uses bounding volumes Uses optimizations Axis-sweep Lower accuracy in favor of speed

40 Collision detection Bounding volumes Easy to check for collisions
Spheres Boxes Cylinders, etc. Contain high-triangle-count meshes Tested for collision before the contained objects If the bounding volume doesn’t collide, then the mesh doesn’t collide

41 Collision detection Bounding sphere Orientation-independent
Center – mesh’s center Radius distance from mesh center to farthest vertex Effective for convex, oval bodies mesh center equally distant from surface vertices rotating bodies

42 Bounding sphere generation
* Bounding sphere generation Live Demo (c) 2008 National Academy for Software Development - All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

43 Collision detection Minimum bounding sphere
Center – the center of the segment, connecting the two farthest mesh vertices Radius – the half-length of the segment, connecting the two farthest mesh vertices Efficient with convex, oval bodies rotating bodies Sphere center rotated with the other mesh vertices

44 Minimum bounding sphere generation
* Minimum bounding sphere generation Live Demo (c) 2008 National Academy for Software Development - All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

45 Collision detection Axis-aligned bounding box (AABB)
Very fast to check for collisions Usually smaller volume than bounding spheres Edges parallel to coordinate axes Minimum corner coordinates – lowest coordinate ends of mesh Maximum corner coordinates – highest coordinate ends of mesh

46 Collision detection Axis-aligned bounding box (2) Efficient with
non-rotating bodies convex bodies oblong bodies If the body rotates, the AABB needs to be recomputed

47 Axis-aligned bounding box generation
* Axis-aligned bounding box generation Live Demo (c) 2008 National Academy for Software Development - All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

48 Collision detection Checking AABBs for collision
Treat the minimum and maximum corners’ coordinates as interval edges 3D case If the x intervals overlap And the y intervals overlap And the z intervals overlap Then the AABBs intersect / collide

49 Axis-aligned bounding box collision detection
* Axis-aligned bounding box collision detection Live Demo (c) 2008 National Academy for Software Development - All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

50 Collision detection Oriented bounding box (OBB) Generated as AABB
Rotates along with the object’s geometry Advantage: Rotating it is much faster than creating an new AABB Usually less volume than AABB Disadvantage: Much slower collision check

51 Oriented bounding box updating
* Oriented bounding box updating Live Demo (c) 2008 National Academy for Software Development - All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*

52 Computational geometry & Collision detection
? ? ? ? ? Questions? ? ? ? ? ? ?


Download ppt "Computational Geometry & Collision detection"

Similar presentations


Ads by Google