Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Geometry A line in 3D space is represented by  S is a point on the line, and V is the direction along which the line runs  Any point P on the line.

Similar presentations


Presentation on theme: "1 Geometry A line in 3D space is represented by  S is a point on the line, and V is the direction along which the line runs  Any point P on the line."— Presentation transcript:

1 1 Geometry A line in 3D space is represented by  S is a point on the line, and V is the direction along which the line runs  Any point P on the line corresponds to a value of the parameter t Two lines are parallel if their direction vectors are parallel

2 2 Geometry A plane in 3D space can be defined by a normal direction N and a point P Other points in the plane satisfy P Q N

3 3 Geometry A plane equation is commonly written A, B, and C are the components of the normal direction N, and D is given by for any point P in the plane

4 4 Geometry A plane is often represented by the 4D vector (A, B, C, D) If a 4D homogeneous point P lies in the plane, then (A, B, C, D)  P = 0 If a point does not lie in the plane, then the dot product tells us which side of the plane the point lies on

5 5 The Dot Product The dot product is a product between two vectors that produces a scalar  The dot product between two n-dimensional vectors V and W is given by  In three dimensions,

6 6 The Dot Product The dot product satisfies the formula   is the angle between the two vectors  Dot product is always 0 between perpendicular vectors  If V and W are unit vectors, the dot product is 1 for parallel vectors pointing in the same direction, -1 for opposite

7 7 The Dot Product The dot product of a vector with itself produces the squared magnitude Often, the notation V 2 is used as shorthand for V  V

8 8 Vectors and Matrices The magnitude of an n-dimensional vector V is given by In three dimensions, this is

9 9 Vectors and Matrices A vector having a magnitude of 1 is called a unit vector Any vector V can be resized to unit length by dividing it by its magnitude: This process is called normalization

10 10 Vectors and Matrices The determinant of a square matrix M is denoted det M or |M| Reduces a matrix to a scalar. For a 2  2 matrix,

11 Chapter 4.2 Collision Detection and Resolution

12 12 Collision Detection Complicated for two reasons 1. Geometry is typically very complex, potentially requiring expensive testing 2. Naïve solution is O(n 2 ) time complexity, since every object can potentially collide with every other object

13 Collision Detection Two basic techniques 1. Overlap testing Detects whether a collision has already occurred 2. Intersection testing Predicts whether a collision will occur in the future

14 14 Overlap Testing Facts  Most common technique used in games  Exhibits more error than intersection testing Concept  For every simulation step, test every pair of objects to see if they overlap  Easy for simple volumes like spheres, harder for polygonal models

15 15 Overlap Testing: Useful Results Useful results of detected collision  Time collision took place  Collision normal vector

16 16 Overlap Testing: Collision Time Collision time calculated by moving object back in time until right before collision  Bisection is an effective technique

17 17 Overlap Testing: Limitations Fails with objects that move too fast  Unlikely to catch time slice during overlap Possible solutions  Design constraint on speed of objects  Reduce simulation step size

18 18 Intersection Testing Predict future collisions When predicted:  Move simulation to time of collision  Resolve collision  Simulate remaining time step

19 19 Intersection Testing: Swept Geometry Extrude geometry in direction of movement Swept sphere turns into a “capsule” shape

20 20 Intersection Testing: Sphere-Sphere Collision

21 21 Intersection Testing: Sphere-Sphere Collision Smallest distance ever separating two spheres: If there is a collision

22 22 Intersection Testing: Limitations Issue with networked games  Future predictions rely on exact state of world at present time  Due to packet latency, current state not always coherent Assumes constant velocity and zero acceleration over simulation step  Has implications for physics model and choice of integrator

23 23 Dealing with Complexity Two issues 1. Complex geometry must be simplified 2. Reduce number of object pair tests

24 24 Dealing with Complexity: Simplified Geometry Approximate complex objects with simpler geometry, like this ellipsoid

25 25 Dealing with Complexity: Minkowski Sum By taking the Minkowski Sum of two complex volumes and creating a new volume, overlap can be found by testing if a single point is within the new volume

26 26 Dealing with Complexity: Minkowski Sum

27 27 Dealing with Complexity: Minkowski Sum

28 28 Dealing with Complexity: Bounding Volumes Bounding volume is a simple geometric shape  Completely encapsulates object  If no collision with bounding volume, no more testing is required Common bounding volumes  Sphere  Box

29 29 Dealing with Complexity: Box Bounding Volumes

30 30 Dealing with Complexity: Achieving O(n) Time Complexity One solution is to partition space

31 31 Dealing with Complexity: Achieving O(n) Time Complexity Another solution is the plane sweep algorithm

32 32 Terrain Collision Detection: Height Field Landscape

33 33 Terrain Collision Detection: Locate Triangle on Height Field

34 34 Terrain Collision Detection: Locate Point on Triangle Plane equation: A, B, C are the x, y, z components of the plane’s normal vector Where with one of the triangles vertices being Giving:

35 35 Terrain Collision Detection: Locate Point on Triangle The normal can be constructed by taking the cross product of two sides: Solve for y and insert the x and z components of Q, giving the final equation for point within triangle:

36 36 The Cross Product The cross product is a product between two vectors the produces a vector  The cross product only applies in three dimensions  The cross product is perpendicular to both vectors being multiplied together  The cross product between two parallel vectors is the zero vector (0, 0, 0)

37 37 The Cross Product The cross product between V and W is A helpful tool for remembering this formula is the pseudodeterminant

38 38 The Cross Product The cross product can also be expressed as the matrix-vector product The perpendicularity property means

39 39 Collision Resolution: Examples Two billiard balls strike  Calculate ball positions at time of impact  Impart new velocities on balls  Play “clinking” sound effect Rocket slams into wall  Rocket disappears  Explosion spawned and explosion sound effect  Wall charred and area damage inflicted on nearby characters Character walks through wall  Magical sound effect triggered  No trajectories or velocities affected

40 40 Collision Resolution: Parts Resolution has three parts 1. Prologue 2. Collision 3. Epilogue

41 41 Collision Resolution: Prologue Collision known to have occurred Check if collision should be ignored Other events might be triggered  Sound effects  Send collision notification messages

42 42 Collision Resolution: Collision Place objects at point of impact Assign new velocities  Using physics or  Using some other decision logic

43 43 Collision Resolution: Epilogue Propagate post-collision effects Possible effects  Destroy one or both objects  Play sound effect  Inflict damage Many effects can be done either in the prologue or epilogue

44 44 Collision Resolution: Resolving Overlap Testing 1. Extract collision normal 2. Extract penetration depth 3. Move the two objects apart 4. Compute new velocities

45 45 Collision Resolution: Extract Collision Normal Find position of objects before impact Use two closest points to construct the collision normal vector

46 46 Collision Resolution: Extract Collision Normal Sphere collision normal vector  Difference between centers at point of collision

47 47 Collision Resolution: Resolving Intersection Testing Simpler than resolving overlap testing  No need to find penetration depth or move objects apart Simply 1. Extract collision normal 2. Compute new velocities


Download ppt "1 Geometry A line in 3D space is represented by  S is a point on the line, and V is the direction along which the line runs  Any point P on the line."

Similar presentations


Ads by Google