Download presentation
Presentation is loading. Please wait.
Published byJoy Claribel Harvey Modified over 8 years ago
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.