GAME PHYSICS ENGINE DEVELOPMENT

Similar documents
GAME PHYSICS SECOND EDITION. дяййтаййг 1 *

System Dynamics for Engineering Students Concepts and Applications

PSE Game Physics. Session (6) Angular momentum, microcollisions, damping. Oliver Meister, Roland Wittmann

GEOPHYSICAL INVERSE THEORY AND REGULARIZATION PROBLEMS

2007 Problem Topic Comment 1 Kinematics Position-time equation Kinematics 7 2 Kinematics Velocity-time graph Dynamics 6 3 Kinematics Average velocity

The Finite Element Method for Solid and Structural Mechanics

Analysis Handbook. Metal Fatigue. for Computer-Aided Engineering. Barkey. Yung-Li Lee. Practical Problem-Solving Techniques. Hong-Tae Kang. Mark E.

ENGINEERING MECHANICS

Differential Equations with Mathematica

APPLIED PARTIAL DIFFERENTIAL EQUATIONS

Stream Ciphers and Number Theory

CS-184: Computer Graphics

STOCHASTIC PROCESSES IN PHYSICS AND CHEMISTRY

Tensor Calculus, Relativity, and Cosmology

THE MECHANICAL UNIVERSE

Fundamentals of Nuclear Reactor Physics

Video Lecture #2 Introductory Conservation of Momentum Problem using Unit Vectors

Dynamic Systems. Modeling and Analysis. Hung V. Vu. Ramin S. Esfandiari. THE McGRAW-HILL COMPANIES, INC. California State University, Long Beach

Modesto Junior College Course Outline of Record PHYS 101

STATICS AND DYNAMICS

Modeling and Solving Constraints. Erin Catto Blizzard Entertainment

COURSE OUTLINE General Physics I

Elementary Mechanics Using Matlab

Thursday Simulation & Unity

STATICS & DYNAMICS. Engineering Mechanics. Gary L. Gray. Francesco Costanzo. Michael E. Plesha. University of Wisconsin-Madison

Assignment 4: Rigid Body Dynamics

Measurement p. 1 What Is Physics? p. 2 Measuring Things p. 2 The International System of Units p. 2 Changing Units p. 3 Length p. 4 Time p. 5 Mass p.

Exploring Monte Carlo Methods

Physics Curriculum. * Optional Topics, Questions, and Activities. Topics

An Introduction to Stochastic Modeling

Geophysical Data Analysis: Discrete Inverse Theory

1 2 Models, Theories, and Laws 1.5 Distinguish between models, theories, and laws 2.1 State the origin of significant figures in measurement

Optimising the Computational Simulation of Mechanical Models: Designing a Real-Time Mass-Aggregate Physics Engine

PSE Game Physics. Session (3) Springs, Ropes, Linear Momentum and Rotations. Atanas Atanasov, Philipp Neumann, Martin Schreiber

With Modern Physics For Scientists and Engineers

Game Physics: Basic Concepts

Physical Simulation. October 19, 2005

Richard A. Mould. Basic Relativity. With 144 Figures. Springer-Verlag New York Berlin Heidelberg London Paris Tokyo Hong Kong Barcelona Budapest

PHYSICS. Course Structure. Unit Topics Marks. Physical World and Measurement. 1 Physical World. 2 Units and Measurements.

Game Physics. Game and Media Technology Master Program - Utrecht University. Dr. Nicolas Pronost

The... of a particle is defined as its change in position in some time interval.

Game Physics. Game and Media Technology Master Program - Utrecht University. Dr. Nicolas Pronost

STATICS Chapter 1 Introductory Concepts

Contents. I Introduction 1. Preface. xiii

GAME PHYSICS (INFOMGP) FINAL EXAM

AP Physics 1. Course Overview

Mechanics. In the Science Program, Mechanics contributes to the following program goals described in the Exit Profile:

ENGINEERING MECHANICS: STATICS AND DYNAMICS

Principles of Computer Game Design and Implementation. Lecture 17

SAN DIEGO COMMUNITY COLLEGE DISTRICT CITY, MESA, AND MIRAMAR COLLEGES ASSOCIATE DEGREE COURSE OUTLINE

APPLIED MATHEMATICS AM 02

Static & Dynamic. Analysis of Structures. Edward L.Wilson. University of California, Berkeley. Fourth Edition. Professor Emeritus of Civil Engineering

Nonlinear Problems of Elasticity

Projects. Assignments. Plan. Motivational Films. Motivational Film 1/6/09. Dynamics II. Forces, Collisions and Impulse

APPLIED MATHEMATICS IM 02

The Hydraulics of Open Channel Flow: An Introduction

Kinematics (special case) Dynamics gravity, tension, elastic, normal, friction. Energy: kinetic, potential gravity, spring + work (friction)

Computational Fluid Dynamics

41514 Dynamics of Machinery

Physics I. Unit 1 Methods in Science (Systems of Units) Competencies (Do) Students should be able to demonstrate scientific methods.

Feature Extraction and Image Processing

Rigid Body Dynamics and Beyond

Physics for Scientists and Engineers 4th Edition, 2017

DIFFERENTIAL EQUATIONS, DYNAMICAL SYSTEMS, AND AN INTRODUCTION TO CHAOS

AP Physics C Mechanics Objectives

TABLE OF CONTENTS. Preface...

Wave Propagation in Anisotropic, Anelastic, Porous and Electromagnetic Media

Rotational & Rigid-Body Mechanics. Lectures 3+4

Chapter 8: Momentum, Impulse, & Collisions. Newton s second law in terms of momentum:

Applied Mathematics B Study Guide

Table of Contents. Preface...xvii. Part 1. Level

Simulation in Computer Graphics Elastic Solids. Matthias Teschner

Nanomaterials, Nanotechnologies and Design

Fundamentals of Applied Probability and Random Processes

Upon successful completion of this course, students should be competent to perform the following tasks:

FUNDAMENTALS OF AERODYNAMICS

AP Physics C: Mechanics: Syllabus 2

AP PHYSICS 1 Learning Objectives Arranged Topically

Get Discount Coupons for your Coaching institute and FREE Study Material at Force System

EXPERIENCE COLLEGE BEFORE COLLEGE

Alabama Department of Postsecondary Education

DIFFERENTIAL EQUATIONS, DYNAMICAL SYSTEMS, AND AN INTRODUCTION TO CHAOS

Modesto Junior College Course Outline of Record PHYS 142

27. Impact Mechanics of Manipulation

Cavity Expansion Methods in Geomechanics

Tentative Physics 1 Standards

D.A.V. PUBLIC SCHOOL, UPPAL S SOUTHEND, SECTOR 49, GURUGRAM CLASS XI (PHYSICS) Academic plan for

E 490 FE Exam Prep. Engineering Mechanics

Integral Section List for OCR Specification

The Finite Element Method for Mechonics of Solids with ANSYS Applicotions

No books, no notes, no calculators. You must show work, unless the question is a true/false, yes/no, or fill-in-the-blank question.

Digital Control Engineering Analysis and Design

Quantum Mechanics: Foundations and Applications

DIVIDED SYLLABUS ( ) - CLASS XI PHYSICS (CODE 042) COURSE STRUCTURE APRIL

Analytical Mechanics for Relativity and Quantum Mechanics

PHYSICS 221, FALL 2011 EXAM #2 SOLUTIONS WEDNESDAY, NOVEMBER 2, 2011

Scalar product Work Kinetic energy Work energy theorem Potential energy Conservation of energy Power Collisions

PHYSICS I RESOURCE SHEET

Chapter 8. Rotational Equilibrium and Rotational Dynamics. 1. Torque. 2. Torque and Equilibrium. 3. Center of Mass and Center of Gravity

LINEAR AND NONLINEAR PROGRAMMING

Transcription:

GAME PHYSICS ENGINE DEVELOPMENT IAN MILLINGTON i > AMSTERDAM BOSTON HEIDELBERG fpf l LONDON. NEW YORK. OXFORD ^. PARIS SAN DIEGO SAN FRANCISCO втс^н Г^ 4.«Mt-fSSKHbe. SINGAPORE. SYDNEY. TOKYO ELSEVIER Morgan Kaufmann is an imprint of Elsevier MORGAN KAUFMANN PUBLISHERS

CONTENTS LIST OF FIGURES PREFACE xvi xix A INTRODUCTION I 1.1 WHAT IS GAME PHYSICS? 2 1.2 WHAT IS A PHYSICS ENGINE? 2 1.2.1 Advantages of a Physics Engine 3 1.2.2 Weaknesses of a Physics Engine 4 1.3 APPROACHES TO PHYSICS ENGINES 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 THE MATHEMATICS OF PHYSICS ENGINES 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 THE SOURCE CODE IN THIS BOOK 10 1.6 How THIS BOOK IS STRUCTURED 11 PART I PARTICLE PHYSICS 13 Zä THE MATHEMATICS OF PARTICLES 15 2.1 VECTORS 15 2.1.1 The Handedness of Space 19 Vll

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 CALCULUS 35 2.2.1 Differential Calculus 36 2.2.2 Integral Calculus 40 2.3 SUMMARY 42 T H E LAWS OF MOTION 43 3.1 A PARTICLE 43 3.2 THE FIRST TWO LAWS 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 THE INTEGRATOR 50 3.3.1 The Update Equations 51 3.3.2 The Complete Integrator 52 3.4 SUMMARY 54 THE PARTICLE PHYSICS ENGINE 55 4.1 BALLISTICS 55 4.1.1 Setting Projectile Properties 56 4.1.2 Implementation 57 4.2 FIREWORKS 60 4.2.1 The Fireworks Data 60 4.2.2 The Fireworks Rules 61 4.2.3 The Implementation 63 4.3 SUMMARY 66

Physics Engine Design ix PART II MASS-AGGREGATE PHYSICS 67 Э ADDING GENERAL FORCES 69 5.1 D'ALEMBERT'S PRINCIPLE 69 5.2 FORCE GENERATORS 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 BUILT-IN GRAVITY AND DAMPING 79 5.4 SUMMARY 79 О SPRINGS AND SPRINGLIKE THINGS 81 6.1 HOOK'S LAW 81 6.1.1 The Limit of Elasticity 83 6.1.2 Springlike Things 83 6.2 SPRINGLIKE FORCE GENERATORS 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 STIFF SPRINGS 93 6.3.1 The Problem of Stiff Springs 93 6.3.2 Faking Stiff Springs 95 6.4 SUMMARY 101 HARD CONSTRAINTS ЮЗ 7.1 SIMPLE COLLISION RESOLUTION 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 COLLISION PROCESSING 108 7.2.1 Collision Detection 111 7.2.2 Resolving Interpenetration 112 7.2.3 Resting Contacts 116 7.3 THE CONTACT RESOLVER ALGORITHM 119 7.3.1 Resolution Order 120 7.3.2 Time-Division Engines 124 7.4 COLLISIONLIKE THINGS 125 7.4.1 Cables 126 7.4.2 Rods 128 7.5 SUMMARY 131 8 THE MASS-AGGREGATE PHYSICS ENGINE Ш 8.1 OVERVIEW OF THE ENGINE 133 8.2 USING THE PHYSICS ENGINE 139 8.2.1 Rope-Bridges and Cables 139 8.2.2 Friction 140 8.2.3 Blob Games 141 8.3 SUMMARY 142 PART III RIGID-BODY PHYSICS 143 THE MATHEMATICS OF ROTATIONS 145 9.1 ROTATING OBJECTS IN TWO DIMENSIONS 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 ORIENTATION IN THREE DIMENSIONS 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 ANGULAR VELOCITY AND ACCELERATION 159 9.3.1 The Velocity of a Point 160 9.3.2 Angular Acceleration 160

Physics Engine Design xi 9.4 IMPLEMENTING THE MATHEMATICS 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 SUMMARY 191 10 LAWS OF MOTION FOR RIGID BODIES 193 10.1 THE RIGID BODY 193 10.2 NEWTON 2 FOR ROTATION 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'ALEMBERT FOR ROTATION 205 10.3.1 Force Generators 208 10.4 THE RIGID-BODY INTEGRATION 210 10.5 SUMMARY 212 11 THE RIGID-BODY PHYSICS ENGINE 213 11.1 OVERVIEW OF THE ENGINE 213 11.2 USING THE PHYSICS ENGINE 216 11.2.1 A Flight Simulator 216 11.2.2 A Sailing Simulator 222 11.3 SUMMARY 227

xii Contents PART IV COLLISION DETECTION 229 12 COLLISION DETECTION 231 12.1 COLLISION DETECTION PIPELINE 232 12.2 COARSE COLLISION DETECTION 232 12.3 BOUNDING VOLUMES 233 12.3.1 Hierarchies 235 12.3.2 Building the Hierarchy 241 12.3.3 Sub-Object Hierarchies 250 12.4 SPATIAL DATA STRUCTURES 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 SUMMARY 261 13 GENERATING CONTACTS 263 13.1 COLLISION GEOMETRY 264 13.1.1 Primitive Assemblies 264 13.1.2 Generating Collision Geometry 265 13.2 CONTACT GENERATION 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 PRIMITIVE COLLISION ALGORITHMS 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 SUMMARY 297

Physics Engine Design xiii PART V CONTACT PHYSICS 299 14 COLLISION RESOLUTION 301 14.1 IMPULSES AND IMPULSIVE TORQUES 301 14.1.1 Impulsive Torque 302 14.1.2 Rotating Collisions 304 14.1.3 Handling Rotating Collisions 305 14.2 COLLISION IMPULSES 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 RESOLVING INTERPENETRATION 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 THE COLLISION RESOLUTION PROCESS 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 SUMMARY 349 15 RESTING CONTACTS AND FRICTION 351 15.1 RESTING FORCES 352 15.1.1 Force Calculations 353 15.2 MICRO-COLLISIONS 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 TYPES OF FRICTION 358 15.3.1 Static and Dynamic Friction 359 15.3.2 Isotropic and Anisotropic Friction 361 15.4 IMPLEMENTING FRICTION 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 FRICTION AND SEQUENTIAL CONTACT RESOLUTION 373 15.6 SUMMARY 374 16 STABILITY AND OPTIMIZATION 375 16.1 STABILITY 375 16.1.1 Quaternion Drift 376 16.1.2 Interpenetration on Slopes 377 16.1.3 Integration Stability 379 16.1.4 The Benefit of Pessimistic Collision Detection 380 16.1.5 Changing Mathematical Accuracy 381 16.2 OPTIMIZATIONS 383 16.2.1 Sleep 383 16.2.2 Margins of Error for Penetration and Velocity 390 16.2.3 Contact Grouping 393 16.2.4 Code Optimizations 394 16.3 SUMMARY 397 17 PUTTING IT ALL TOGETHER 399 17.1 OVERVIEW OF THE ENGINE 399 17.2 USING THE PHYSICS ENGINE 401 17.2.1 Ragdolls 402 17.2.2 Fracture Physics 405 17.2.3 Explosive Physics 411 17.3 LIMITATIONS OF THE ENGINE 418 17.3.1 Stacks 418 17.3.2 Reaction Force Friction 419 17.3.3 Joint Assemblies 419 17.3.4 Stiff Springs 419 17.4 SUMMARY 419 PART VI WHAT COMES NEXT? 42 1 18 OTHER TYPES OF PHYSICS 423 18.1 SIMULTANEOUS CONTACT RESOLUTION 423

Physics Engine Design xv 18.1.1 Thejacobian 424 18.1.2 The Linear Complementary Problem 425 18.2 REDUCED COORDINATE APPROACHES 428 18.3 SUMMARY 429 APPENDICES COMMON INERTIA TENSORS 431 A.l DISCRETE MASSES 431 A.2 CONTINUOUS MASSES 432 В D A.3 COMMON SHAPES 432 A.3.1 Cuboid 432 A.3.2 Sphere 432 A.3.3 Cylinder 433 A.3.4 Cone 433 USEFUL FRICTION COEFFICIENTS FOR GAMES 434 OTHER PROGRAMMING LANGUAGES 435 C.l С 435 C.2 JAVA 436 C.3 COMMON LANGUAGE RUNTIME (.NET) 436 C.4 LUA 436 MATHEMATICS SUMMARY 438 D.l VECTORS 438 D.2 QUATERNIONS 439 D.3 MATRICES 440 D.4 INTEGRATION 441 D.5 PHYSICS 442 D.6 OTHER FORMULAE 443 BIBLIOGRAPHY 445 INDEX 447