Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCE 552 Spring 2009 Math, Physics and Collision Detection By Jijun Tang.

Similar presentations


Presentation on theme: "CSCE 552 Spring 2009 Math, Physics and Collision Detection By Jijun Tang."— Presentation transcript:

1 CSCE 552 Spring 2009 Math, Physics and Collision Detection By Jijun Tang

2 Game Entities What are game entities?  Basically anything in a game world that can be interacted with  More precisely, a self-contained piece of logical interactive content  Only things we will interact with should become game entities Organization  Simple list  Multiple databases  Logical tree  Spatial database

3 Identification and Communication Identification  Strings  Pointers  Unique IDs or handles Communication  Simplest method is function calls  Many games use a full messaging system  Need to be careful about passing and allocating messages

4 Applied Trigonometry Trigonometric functions  Defined using right triangle  x y h

5 Visualize Vectors The length represents the magnitude The arrowhead indicates the direction Multiplying a vector by a scalar changes the arrow ’ s length V 2V2V –V–V

6 Vectors Add and Subtraction Two vectors V and W are added by placing the beginning of W at the end of V Subtraction reverses the second vector V W V + W V W V V – WV – W –W–W

7 Matrix Representation The entry of a matrix M in the i-th row and j-th column is denoted M ij For example,

8 Invertible An n  n matrix M is invertible if there exists another matrix G such that The inverse of M is denoted M -1

9 Inverse of 4x4

10 Transformations Calculations are often carried out in many different coordinate systems We must be able to transform information from one coordinate system to another easily Matrix multiplication allows us to do this

11 Illustration

12 R S T Suppose that the coordinate axes in one coordinate system correspond to the directions R, S, and T in another Then we transform a vector V to the RST system as follows

13 2D Example θ

14 2D Rotations

15 Rotation Around Arbitrary Vector Rotation about an arbitrary vector Counterclockwise rotation about an arbitrary vector (l x,l y,l z ) normalised so that by an angle α is given by a matrix where

16 Transformation matrix We transform back to the original system by inverting the matrix: Often, the matrix ’ s inverse is equal to its transpose — such a matrix is called orthogonal

17 Translation A 3  3 matrix can reorient the coordinate axes in any way, but it leaves the origin fixed We must add a translation component D to move the origin:

18 Homogeneous coordinates Four-dimensional space Combines 3  3 matrix and translation into one 4  4 matrix

19 Direction Vector and Point V is now a four-dimensional vector The w-coordinate of V determines whether V is a point or a direction vector  If w = 0, then V is a direction vector and the fourth column of the transformation matrix has no effect  If w  0, then V is a point and the fourth column of the matrix translates the origin  Normally, w = 1 for points

20 Transformations The three-dimensional counterpart of a four-dimensional homogeneous vector V is given by Scaling a homogeneous vector thus has no effect on its actual 3D value

21 Transformations Transformation matrices are often the result of combining several simple transformations  Translations  Scales  Rotations Transformations are combined by multiplying their matrices together

22 Transformation Steps

23 Translation Translation matrix Translates the origin by the vector T

24 Scale Scale matrix Scales coordinate axes by a, b, and c If a = b = c, the scale is uniform

25 Rotation (Z) Rotation matrix Rotates points about the z-axis through the angle 

26 Rotations (X, Y) Similar matrices for rotations about x, y

27 Transforming Normal Vectors Normal vectors are transformed differently than do ordinary points and directions A normal vector represents the direction pointing out of a surface A normal vector is perpendicular to the tangent plane If a matrix M transforms points from one coordinate system to another, then normal vectors must be transformed by (M -1 ) T

28 Orderings

29 Orderings of different type is important A rotation followed by a translation is different from a translation followed by a rotation Orderings of the same type does not matter

30 Geometry -- Lines 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

31 Plane 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

32 Plane Equation 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

33 Properties of Plane 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

34 Distance from Point to a Line Distance d from a point P to a line S + t V P VS d

35 Distance from Point to a Line Use Pythagorean theorem: Taking square root, If V is unit length, then V 2 = 1

36 Line and Plane Intersection Let P(t) = S + t V be the line Let L = (N, D) be the plane We want to find t such that L  P(t) = 0 Careful, S has w-coordinate of 1, and V has w-coordinate of 0

37 Formular If L  V = 0, the line is parallel to the plane and no intersection occurs Otherwise, the point of intersection is

38 Real-time Physics in Game at Runtime: Enables the emergent behavior that provides player a richer game experience Potential to provide full cost savings to developer/publisher Difficult  May require significant upgrade of game engine  May require significant update of asset creation pipelines  May require special training for modelers, animators, and level designers Licensing an existing engine may significantly increase third party middleware costs

39 Engines Commercial  Game Dynamics SDK (Havok.com)  Renderware Physics (renderware.com)  NovodeX SDK (novodex.com) Free  Open Dynamic Engine (ODE) (ode.org)  Tokamak Game Physics SDK (tokamakphysics.com)  Newton Game Dynamics SDK (newtondynamics.com)

40 Particle Physics What is a Particle?  A sphere of finite radius with a perfectly smooth, frictionless surface  Experiences no rotational motion (or assume the sphere has no size) Particle Kinematics  Defines the basic properties of particle motion  Position, Velocity, Acceleration

41 Location of Particle in World Space  SI Units: meters (m)  Changes over time when object moves Particle Position

42 Particle Velocity and Acceleration Velocity (SI units: m/s)  First time derivative of position: Acceleration (SI units: m/s 2 )  First time derivative of velocity  Second time derivative of position

43 Newton ’ s 2 nd Law of Motion Paraphrased – “ An object ’ s change in velocity is proportional to an applied force ” The Classic Equation:  m = mass (SI units: kilograms, kg)  F(t) = force (SI units: Newtons)

44 What is Physics Simulation? The Cycle of Motion:  Force, F(t), causes acceleration  Acceleration, a(t), causes a change in velocity  Velocity, V(t) causes a change in position Physics Simulation: Solving variations of the above equations over time to emulate the cycle of motion

45 Concrete Example: Target Practice Target Projectile Launch Position, p init

46 Choose V init to Hit a Stationary Target  p target is the stationary target location  We would like to choose the initial velocity, V init, required to hit the target at some future time, t hit.  Here is our equation of motion at time t hit : Target Practice

47 Equation Problem Solution in general is a bit tedious to derive … Infinite number of solutions! Hint: Specify the magnitude of V init, solve for its direction

48 969.31 Example 1 V init = 25 m/s Value of Radicand of tan  equation: Launch angle  : 19.4 deg or 70.6 deg

49 Finite Difference Methods-I The Explicit Euler Integrator: Properties of object are stored in a state vector, S Use the above integrator equation to incrementally update S over time as game progresses Must keep track of prior value of S in order to compute the new For Explicit Euler, one choice of state and state derivative for particle:

50 Finite Difference Methods-II The Verlet Integrator: Must store state at two prior time steps, S(t) and S(t-  t) Uses second derivative of state instead of the first Valid for constant time step only (as shown above) For Verlet, choice of state and state derivative for a particle:

51 Errors Exact Euler

52 Generalized Rigid Bodies Key Differences from Particles  Not necessarily spherical in shape  Position, p, represents object ’ s center-of-mass location  Surface may not be perfectly smooth and friction forces may be present  Experience rotational motion in addition to translational (position only) motion

53 Additional forces Linear Spring Viscous Damping Aerodynamic Drag Friction …

54 Linear Springs

55 Viscous Damping

56 Aerodynamic Drag S: projected front area C D : drag coefficient

57 Friction

58 Collision Detection and Resolution

59 What is Collision Detection A fundamental problem in computer games, computer animation, physically-based modeling, geometric modeling, and robotics. Including algorithms:  To check for collision, i.e. intersection, of two given objects  To calculate trajectories, impact times and impact points in a physical simulation.

60 Collision Detection Complicated for two reasons  Geometry is typically very complex, potentially requiring expensive testing  Naïve solution is O(n 2 ) time complexity, since every object can potentially collide with every other object Two basic techniques  Overlap testing: Detects whether a collision has already occurred  Intersection testing: Predicts whether a collision will occur in the future

61 Overlap Testing (a posteriori) Overlap testing: Detects whether a collision has already occurred, sometime is referred as a posteriori Facts  Most common technique used in games  Exhibits more error than intersection testing Concept  For every (small) simulation step, test every pair of objects to see if they overlap  Easy for simple volumes like spheres, harder for polygonal models

62 Overlap Testing Results Useful results of detected collision  Pairs of objects will have collision  Time of collision to take place  Collision normal vector Collision time calculated by moving object back in time  until right before collision  Bisection is an effective technique

63 Bisect Testing: collision detected

64 Bisect Testing: Iteration I

65 Bisect Testing: Iteration II

66 Bisect Testing: Iteration III

67 Bisect Testing: Iteration IV

68 Bisect Testing: Iteration V Time right before the collision

69 Overlap Testing: Limitations Fails with objects that move too fast  Thin glass vs. bulltes  Unlikely to catch time slice during overlap

70 Solution for This Limitation Speed of the fastest object multiplies the time step should be smaller than the smallest objects in the scene Possible solutions  Design constraint on speed of objects: hard to apply without affecting the play  Reduce simulation step size: too expensive

71 Intersection Testing (a priori) Predict future collisions When predicted:  Move simulation to time of collision  Resolve collision  Simulate remaining time step

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

73 Intersection Testing: Sphere-Sphere Collision d

74 Special Cases No collision: B 2 = 0: both objects are stationary, or they are traveling at parallel When will collision occur?

75 Intersection Testing: When to Collide Smallest distance ever separating two spheres: If there is a collision

76 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

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

78 Simplified Geometry Approximate complex objects with simpler geometry, like this ellipsoid or bounding boxes

79 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

80 Minkowski Sum

81 Using Minkowski Sum

82 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

83 Box Bounding Volumes

84 More Examples

85 Using Bounding Box in Game Complex objects can have multiple bounding boxes  Human object can have one big bounding box for the whole body  Human object can have one bounding box per limb, head, etc Bounding box can be hierarchical:  Test the big first  if possible collision, test the smaller ones

86 Reduce Number of Detections O(n) Time Complexity can be achieved. One solution is to partition space

87 Achieving O(n) Time Complexity Another solution is the plane sweep algorithm Requires (re-)sorting in x (y) coordinate


Download ppt "CSCE 552 Spring 2009 Math, Physics and Collision Detection By Jijun Tang."

Similar presentations


Ads by Google