Game Physics Engine Development



tải về 6.67 Mb.
Chế độ xem pdf
trang5/292
Chuyển đổi dữ liệu24.10.2023
Kích6.67 Mb.
#55399
1   2   3   4   5   6   7   8   9   ...   292
Ian Millington-Game Physics Engine Development-EN

I
N T R O D U C T I O N
1
1.1
W
H AT
I
S
G
A M E
P
H Y S I C S
?
2
1.2
W
H AT
I
S
A
P
H Y S I C S
E
N G I N E
?
2
1.2.1
Advantages of a Physics Engine
3
1.2.2
Weaknesses of a Physics Engine
4
1.3
A
P P R O A C H E S T O
P
H Y S I C S
E
N G I N E S
5
1.3.1
Types of Object
5
1.3.2
Contact Resolution
5
1.3.3
Impulses and Forces
6
1.3.4
What We’re Building
7
1.4
T
H E
M
AT H E M AT I C S O F
P
H Y S I C S
E
N G I N E S
7
1.4.1
The Math You Need to Know
8
1.4.2
The Math We’ll Review
9
1.4.3
The Math We’ll Introduce
10
1.5
T
H E
S
O U R C E
C
O D E
I N
T
H I S
B
O O K
10
1.6
H
O W
T H I S
B
O O K
I
S
S
T R U C T U R E D
11
P
A R T
I
P
A R T I C L E
P
H Y S I C S
1 3
C
H A P T E R
2
T
H E
M
AT H E M AT I C S
O F
P
A R T I C L E S
15
2.1
V
E C T O R S
15
2.1.1
The Handedness of Space
19
vii


viii
Contents
2.1.2
Vectors and Directions
20
2.1.3
Scalar and Vector Multiplication
23
2.1.4
Vector Addition and Subtraction
24
2.1.5
Multiplying Vectors
27
2.1.6
The Component Product
28
2.1.7
The Scalar Product
29
2.1.8
The Vector Product
31
2.1.9
The Orthonormal Basis
35
2.2
C
A L C U LU S
35
2.2.1
Differential Calculus
36
2.2.2
Integral Calculus
40
2.3
S
U M M A R Y
42
C
H A P T E R
3
T
H E
L
AW S
O F
M
O T I O N
43
3.1
A P
A R T I C L E
43
3.2
T
H E
F
I R S T
T
W O
L
AW S
44
3.2.1
The First Law
45
3.2.2
The Second Law
46
3.2.3
The Force Equations
46
3.2.4
Adding Mass to Particles
47
3.2.5
Momentum and Velocity
48
3.2.6
The Force of Gravity
48
3.3
T
H E
I
N T E G R AT O R
50
3.3.1
The Update Equations
51
3.3.2
The Complete Integrator
52
3.4
S
U M M A R Y
54
C
H A P T E R
4
T
H E
P
A R T I C L E
P
H Y S I C S
E
N G I N E
55
4.1
B
A L L I S T I C S
55
4.1.1
Setting Projectile Properties
56
4.1.2
Implementation
57
4.2
F
I R E W O R K S
60
4.2.1
The Fireworks Data
60
4.2.2
The Fireworks Rules
61
4.2.3
The Implementation
63
4.3
S
U M M A R Y
66


Physics Engine Design
ix
P
A R T
I I
M
A S S
- A
G G R E G AT E
P
H Y S I C S
6 7
C
H A P T E R
5
A
D D I N G
G
E N E R A L
F
O R C E S
69
5.1
D ’ A
L E M B E R T

S
P
R I N C I P L E
69
5.2
F
O R C E
G
E N E R AT O R S
72
5.2.1
Interfaces and Polymorphism
73
5.2.2
Implementation
73
5.2.3
A Gravity Force Generator
76
5.2.4
A Drag Force Generator
77
5.3
B
U I LT
-
I N
G
R AV I T Y A N D
D
A M P I N G
79
5.4
S
U M M A R Y
79
C
H A P T E R
6
S
P R I N G S
A N D
S
P R I N G L I K E
T
H I N G S
81
6.1
H
O O K

S
L
AW
81
6.1.1
The Limit of Elasticity
83
6.1.2
Springlike Things
83
6.2
S
P R I N G L I K E
F
O R C E
G
E N E R AT O R S
83
6.2.1
A Basic Spring Generator
84
6.2.2
An Anchored Spring Generator
86
6.2.3
An Elastic Bungee Generator
87
6.2.4
A Buoyancy Force Generator
89
6.3
S
T I FF
S
P R I N G S
93
6.3.1
The Problem of Stiff Springs
93
6.3.2
Faking Stiff Springs
95
6.4
S
U M M A R Y
101
C
H A P T E R
7
H
A R D
C
O N S T R A I N T S
103
7.1
S
I M P L E
C
O L L I S I O N
R
E S O LU T I O N
103
7.1.1
The Closing Velocity
104
7.1.2
The Coefficient of Restitution
105
7.1.3
The Collision Direction and the Contact Normal
105
7.1.4
Impulses
107


x
Contents
7.2
C
O L L I S I O N
P
R O C E S S I N G
108
7.2.1
Collision Detection
111
7.2.2
Resolving Interpenetration
112
7.2.3
Resting Contacts
116
7.3
T
H E
C
O N TA C T
R
E S O LV E R
A
L G O R I T H M
119
7.3.1
Resolution Order
120
7.3.2
Time-Division Engines
124
7.4
C
O L L I S I O N L I K E
T
H I N G S
125
7.4.1
Cables
126
7.4.2
Rods
128
7.5
S
U M M A R Y
131
C
H A P T E R
8
T
H E
M
A S S
- A
G G R E G AT E
P
H Y S I C S
E
N G I N E
133
8.1
O
V E R V I E W O F
T H E
E
N G I N E
133
8.2
U
S I N G
T H E
P
H Y S I C S
E
N G I N E
139
8.2.1
Rope-Bridges and Cables
139
8.2.2
Friction
140
8.2.3
Blob Games
141
8.3
S
U M M A R Y
142
P
A R T
I I I
R
I G I D
- B
O D Y
P
H Y S I C S
1 4 3
C
H A P T E R
9
T
H E
M
AT H E M AT I C S
O F
R
O TAT I O N S
145
9.1
R
O TAT I N G
O
B J E C T S I N
T
W O
D
I M E N S I O N S
145
9.1.1
The Mathematics of Angles
146
9.1.2
Angular Speed
148
9.1.3
The Origin and the Center of Mass
148
9.2
O
R I E N TAT I O N I N
T
H R E E
D
I M E N S I O N S
152
9.2.1
Euler Angles
153
9.2.2
Axis–Angle
155
9.2.3
Rotation Matrices
156
9.2.4
Quaternions
157
9.3
A
N G U L A R
V
E L O C I T Y A N D
A
C C E L E R AT I O N
159
9.3.1
The Velocity of a Point
160
9.3.2
Angular Acceleration
160


Physics Engine Design
xi
9.4
I
M P L E M E N T I N G T H E
M
AT H E M AT I C S
161
9.4.1
The Matrix Classes
161
9.4.2
Matrix Multiplication
162
9.4.3
The Matrix Inverse and Transpose
171
9.4.4
Converting a Quaternion to a Matrix
178
9.4.5
Transforming Vectors
180
9.4.6
Changing the Basis of a Matrix
184
9.4.7
The Quaternion Class
186
9.4.8
Normalizing Quaternions
187
9.4.9
Combining Quaternions
188
9.4.10 Rotating
189
9.4.11 Updating by the Angular Velocity
190
9.5
S
U M M A R Y
191
C
H A P T E R
10
L
AW S
O F
M
O T I O N
F O R
R
I G I D
B
O D I E S
193
10.1
T
H E
R
I G I D
B
O D Y
193
10.2
N
E W T O N
2
F O R
R
O TAT I O N
196
10.2.1 Torque
197
10.2.2 The Moment of Inertia
198
10.2.3 The Inertia Tensor in World Coordinates
202
10.3
D ’ A
L E M B E R T F O R
R
O TAT I O N
205
10.3.1 Force Generators
208
10.4
T
H E
R
I G I D
- B
O D Y
I
N T E G R AT I O N
210
10.5
S
U M M A R Y
212
C
H A P T E R
11
T
H E
R
I G I D
- B
O D Y
P
H Y S I C S
E
N G I N E
213
11.1
O
V E R V I E W O F
T H E
E
N G I N E
213
11.2
U
S I N G
T H E
P
H Y S I C S
E
N G I N E
216
11.2.1 A Flight Simulator
216
11.2.2 A Sailing Simulator
222
11.3
S
U M M A R Y
227


xii
Contents
P
A R T
I V
C
O L L I S I O N
D
E T E C T I O N
2 2 9
C
H A P T E R
12
C
O L L I S I O N
D
E T E C T I O N
231
12.1
C
O L L I S I O N
D
E T E C T I O N
P
I P E L I N E
232
12.2
C
O A R S E
C
O L L I S I O N
D
E T E C T I O N
232
12.3
B
O U N D I N G
V
O LU M E S
233
12.3.1 Hierarchies
235
12.3.2 Building the Hierarchy
241
12.3.3 Sub-Object Hierarchies
250
12.4
S
PAT I A L
D
ATA
S
T R U C T U R E S
251
12.4.1 Binary Space Partitioning
251
12.4.2 Oct-Trees and Quad-Trees
255
12.4.3 Grids
258
12.4.4 Multi-Resolution Maps
260
12.5
S
U M M A R Y
261
C
H A P T E R
13
G
E N E R AT I N G
C
O N TA C T S
263
13.1
C
O L L I S I O N
G
E O M E T R Y
264
13.1.1 Primitive Assemblies
264
13.1.2 Generating Collision Geometry
265
13.2
C
O N TA C T
G
E N E R AT I O N
265
13.2.1 Contact Data
267
13.2.2 Point–Face Contacts
269
13.2.3 Edge–Edge Contacts
269
13.2.4 Edge–Face Contacts
271
13.2.5 Face–Face Contacts
271
13.2.6 Early-Outs
272
13.3
P
R I M I T I V E
C
O L L I S I O N
A
L G O R I T H M S
273
13.3.1 Colliding Two Spheres
274
13.3.2 Colliding a Sphere and a Plane
276
13.3.3 Colliding a Box and a Plane
279
13.3.4 Colliding a Sphere and a Box
282
13.3.5 Colliding Two Boxes
287
13.3.6 Efficiency and General Polyhedra
297
13.4
S
U M M A R Y
297


Physics Engine Design
xiii
P
A R T
V
C
O N TA C T
P
H Y S I C S
2 9 9
C
H A P T E R
14
C
O L L I S I O N
R
E S O LU T I O N
301
14.1
I
M PU L S E S A N D
I
M PU L S I V E
T
O R Q U E S
301
14.1.1 Impulsive Torque
302
14.1.2 Rotating Collisions
304
14.1.3 Handling Rotating Collisions
305
14.2
C
O L L I S I O N
I
M PU L S E S
306
14.2.1 Change to Contact Coordinates
306
14.2.2 Velocity Change by Impulse
313
14.2.3 Impulse Change by Velocity
317
14.2.4 Calculating the Desired Velocity Change
318
14.2.5 Calculating the Impulse
319
14.2.6 Applying the Impulse
320
14.3
R
E S O LV I N G
I
N T E R P E N E T R AT I O N
321
14.3.1 Choosing a Resolution Method
321
14.3.2 Implementing Nonlinear Projection
325
14.3.3 Avoiding Excessive Rotation
328
14.4
T
H E
C
O L L I S I O N
R
E S O LU T I O N
P
R O C E S S
330
14.4.1 The Collision Resolution Pipeline
331
14.4.2 Preparing Contact Data
333
14.4.3 Resolving Penetration
337
14.4.4 Resolving Velocity
344
14.4.5 Alternative Update Algorithms
346
14.5
S
U M M A R Y
349
C
H A P T E R
15
R
E S T I N G
C
O N TA C T S
A N D
F
R I C T I O N
351
15.1
R
E S T I N G
F
O R C E S
352
15.1.1 Force Calculations
353
15.2
M
I C R O
-
C O L L I S I O N S
354
15.2.1 Removing Accelerated Velocity
356
15.2.2 Lowering the Restitution
357
15.2.3 The New Velocity Calculation
357
15.3
T
Y P E S
O F
F
R I C T I O N
358
15.3.1 Static and Dynamic Friction
359
15.3.2 Isotropic and Anisotropic Friction
361
15.4
I
M P L E M E N T I N G
F
R I C T I O N
362
15.4.1 Friction as Impulses
363


xiv
Contents
15.4.2 Modifying the Velocity Resolution Algorithm
365
15.4.3 Putting It All Together
371
15.5
F
R I C T I O N A N D
S
E Q U E N T I A L
C
O N TA C T
R
E S O LU T I O N
373
15.6
S
U M M A R Y
374

tải về 6.67 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   292




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương