2013S G07 Physics

Werbung
Computerspiele (c) 2013, Peter Sturm, Universität Trier Sommer 2013 1 Computerspiele Sommer 2013 7. Physics Motivation •  Graphik beschreibt reale Körper –  Unterschiedlichen Materialeigenschaften •  Elastizität, Masse, Dichte, … •  “Physik” gibt graphischen Gebilden Semantik –  Bewegung, Trägheit, Kollision (c) 2013, Peter Sturm, Universität Trier 2 Computerspiele Sommer 2013 Rechenaufwand •  Realismus mit wachsender Objektanzahl und –komplexität extrem rechenaufwendig •  Deformationen, Auseinanderfallen, … –  Reibung –  Explosionen •  Partikel und Flüssigkeiten •  Haar und Kleidung Ansätze
•  Komplexe Differentialgleichungen
•  Geschlossene Lösungen für einfache Modelle
–  Punktmassen
–  Keine Reibung
•  Echtzeitsimulation der Physik
–  Approximative Lösung der Gleichungen
–  Je nach Auflösung sehr hohe Dimensionalität
(c) 2013, Peter Sturm, Universität Trier 3 Computerspiele Sommer 2013 Newton •  1642 -­‐1727 •  Cambridge –  Lucasian Professor for Mathematics –  Babbage, Stokes, Dirac, ... –  Stephen Hawking (1979-­‐2009) •  Newtonsche Gesetze (1687) (nach Wikipedia) Trägheitsprinzip •  Ein Körper verharrt in seinem Zustand der Ruhe oder der gleichförmigen geradlinigen Bewegung, solange die Summe aller auf ihn einwirkenden Kräfte Null ist. (c) 2013, Peter Sturm, Universität Trier 4 Computerspiele Sommer 2013 Aktionsprinzip •  Die Änderung der Bewegung einer Masse ist der Einwirkung der bewegenden Kraft proportional und geschieht nach der Richtung derjenigen geraden Linie, nach welcher jene Kraft wirkt. Reaktionsprinzip •  Kräfte treten immer paarweise auf. Übt ein Körper A auf einen anderen Körper B eine Kraft aus (actio), so wirkt eine gleichgroße, aber entgegen gerichtete Kraft von Körper B auf Körper A (reactio). (c) 2013, Peter Sturm, Universität Trier 5 Computerspiele Sommer 2013 Newton (2) •  Gesetze gelten auch in Zeiten der Relativitätstheorie –  Solange die Geschwindigkeit nicht relativistisch ist •  Zweites Gesetz F (t ) = m ⋅ a(t )
–  m = Masse eines Objektes (in Kilogramm) –  a = Beschleunigung (m/s2) –  F = Kraft (in Newton: N = kg m / s2) Beschleunigung, Geschwindigkeit, Ort d
d2
a(t ) = V (t ) = 2 p(t )
dt
dt
•  Funktionen in der Zeit •  Mittlere Beschleunigung bzw. Geschwindigkeit Vavg =
p(t + Δt) − p(t)
Δt
(c) 2013, Peter Sturm, Universität Trier aavg =
V (t + Δt) − V (t)
Δt
6 Computerspiele Sommer 2013 Konstante Kraft •  F = m·∙a konstant •  Geschwindigkeit V (t ) = ∫ a dτ = ∫
F
F
F
dτ = Vinit + τ = Vinit + (t − tinit )
m
m
m
•  Position p(t ) = ∫ V (τ ) dτ = ∫ (Vinit +
F
F
τ )dτ = pinit + V (t − tinit ) +
(t − tinit ) 2
m
2m
•  Einfach ausrechnen J Beispiel •  Flugbahn eines Projektils –  Kraft = Gravitation g (9.81 m/s2) •  Ortsberechnung 1
p(t ) = pinit + V (t − tinit ) + g (t − tinit ) 2
2
(c) 2013, Peter Sturm, Universität Trier 7 Computerspiele Sommer 2013 Ballerburg (Atari ST) … Wind? •  Mehrere konstante Kräft •  Alle Kräfte einfach addieren Wind
Resultierende
Gesamtkraft
g
(c) 2013, Peter Sturm, Universität Trier 8 Computerspiele Sommer 2013 Kollision (Klassische Phyisk) V1−
p2
•  Annahmen –  Feste Körper –  Keine Reibung p1
•  Impulsgleichungen m1
m2
n
V2−
m1V1+ = m1V1− + Β
m2V2+ = m2V2− − Β
•  Stoßzahl ε Β = b⋅n
b=−
m1m2 (1 + ε )(V − V ) ⋅ n
m1 + m2
−
1
−
2
–  1 = Perfekt elastisch –  0 = Perfekt plastisch Etwas mehr Realismus •  Realistisch sind es aber Funktionen in der Zeit: –  a(t), V(t), p(t) d
d2
a(t ) = V (t ) = 2 p(t )
dt
dt
•  Geschlossene Lösung selten möglich •  Numerische Integration –  Diverse Verfahrensweisen •  Euler, Verlet, Runge-­‐Kutta, … (c) 2013, Peter Sturm, Universität Trier 9 Computerspiele Sommer 2013 Numerische Integration •  Lineare Approximation der Differentialgleichungen •  Beispielsweise durch Taylorreihe (Δt ) n d n
S (t + Δt ) = S (t ) + ∑
S (t )
n! dt n
n =1
∞
•  Terme höherer Ordnung abschneiden = Fehler –  Selten mehr als Ordnung 2 •  Numerische Stabilität •  Spezielle Vorlesungen aus der Mathematik empfehlenswert J Simulationsschleife •  Δt in der numerischen Integration –  Fehlerschranke –  Numerische Stabilität •  Entkopplung von Framerate float
float
float
float
delta_t = 0.02;
game_time;
prev_game_time;
physical_lag_time = 0.0;
while (game running) {
game_time = current_time();
physical_lag_time += (game_time – prev_game_time);
while (physical_lag_time > delta_t) {
SimulatePhysics(delta_t);
physical_lag_time -= delta_t;
}
prev_game_time = game_time;
RenderScene();
}
(c) 2013, Peter Sturm, Universität Trier 10 Computerspiele Sommer 2013 Wirkliche Körper Wirkliche Körper •  Punktförmige & sphärische Massen unrealistisch •  Ermittlung des Schwerpunkts •  Allgemein Volumenintegrale pcenter =
•  In Spielen 1
∫∫∫ ρrdxdydz
m Volume
–  Effiziente Approximation über Polygonoberfläche (c) 2013, Peter Sturm, Universität Trier 11 Computerspiele Sommer 2013 Drehmomente •  Rotationen beliebiger Körper um Schwerpunkt •  Tensor ⎡ J xx
⎢
L(t ) = ⎢ J xy
⎢ J xz
⎣
J xy
J yy
J yz
J xz ⎤
⎥
J yz ⎥ω (t )
J zz ⎥⎦
Trägheitsmomente
Trägheitsprodukte
Beispielkörper •  r = Radius J xx =
1
m(3r 2 + h 2 )
12
J yy = J xx
J zz =
1 2
mr
2
•  Trägheitsprodukte sind 0 (c) 2013, Peter Sturm, Universität Trier 12 Computerspiele Sommer 2013 •  Federelemente (Linear) –  Unterschiedliche Längen Federn •  Ruhelänge (es wirken keine Kräfte) •  Größer als Ruhelänge: Kompression •  Kleiner als Ruhelänge: Expansion FSpring = k (l − lRe st )vd
aus Rabin
–  k = Stärke der Feder –  vd = Vektor (parallel zur Feder, Länge 1) Viskose Dämpfung •  Zwei Körper bewegen sich in vergleichsweise dichten Medien aufeinander zu –  Luft, Wasser, Öl, … •  Kraft ist relativ zum Volumen und zur Geschwindigkeit des Objekts Fdamping = c ⋅ ((Vep 2 − Vep1 ) ⋅ dˆ ) ⋅ dˆ
–  d ist Vektor in pe1 und pe2 (Länge 1) –  c Dämpfungskoeffizient (c) 2013, Peter Sturm, Universität Trier 13 Computerspiele Sommer 2013 Reibung •  Kräfte parallel zur Kontaktfläche zweier Objekte •  Statische Reibung –  Überwindung einer Anfangsenergie •  Dynamische Reibung –  Während der Bewegung –  Häufig Ruckartig –  Meist kleiner als statische Reibung Veranschaulichung aus Rabin
(c) 2013, Peter Sturm, Universität Trier 14 Computerspiele Sommer 2013 Kollisionen (Iteriert) •  Berücksichtig man alle Facetten werden Kollisionen deutlich komplizierter –  Reibung beim Aufprall –  Rotationskräfte bei allgemeinen Körpern –  Auseinanderbrechen Status Quo •  Einige Spiele kommen mit wenig bis keine Physik aus –  Häufig reichen einfache geschlossene Lösungsansätze •  Gros der Spiele –  Physik für die „Hauptcharaktere“ •  Person, Gegner, Raumschiff, Auto –  Ggf. Physik für einzelne Szenenobjekte •  Gegner “stirbt“ durch fallende Tonne o.ä. •  Der Realismus nimmt zu –  Numerische Simulation unausweichlich –  Quantitativ und mathematische komplexe Aufgabenstellung (c) 2013, Peter Sturm, Universität Trier 15 Computerspiele Sommer 2013 PPUs •  Physical Processing Unit •  Übernimmt in Analogie zur GPU –  Physikalische Objekteigenschaften –  Kollisionen –  Deformationen CPU
•  „Beliebige“ physikalische Manipulationsmöglichkeiten GPU
PPU
Beispiel AGEIA •  Entwickelt PhysX HW-­‐Engine •  Board-­‐Entwicklung durch ASUS –  3. Quartal 2005 (?) –  Immerhin noch News Ende 2005 •  Funktionen –  Kollisionen –  Finite Elemente –  Dynamik weicher Körper –  Flüssigkeiten –  Haar und Kleidung (c) 2013, Peter Sturm, Universität Trier 16 Computerspiele Sommer 2013 Beispiel Fluids
Trend (2006) •  Spezialisierung PPU klingt bestechend –  Wiederholung der GPU-­‐Spezialisierung –  Leistung durch CPU (auch zusätzliche) nicht erreichbar •  Numerische Integration hochgradig parallelisierbar •  Alternativen –  Eine feste Engine hardware-­‐verdrahtet –  Generische Lösung wie bei GPU ⇒ SIMD-­‐Rechner •  Andere Spezialisierung •  Numerische Stabilität (c) 2013, Peter Sturm, Universität Trier 17 Computerspiele Sommer 2013 Aber ... •  Trend zu einheitlichen Shadern bei GPU •  Mehrere Cores auf einem Die •  Cell-­‐Prozessor IBM http://physxinfo.com/news/wp-­‐content/uploads/2010/05/mafia-­‐ii_physx_01.jpg (c) 2013, Peter Sturm, Universität Trier 18 Computerspiele Sommer 2013 Trend (2009) •  Dedizierte PPUs haben sich nicht durchgesetzt •  PhysX von nvidia aufgekauft –  Verlagerung auf GPUs und CUDA-­‐Plattformen •  Havok (jetzt Intel) –  Physikbereich vergleichbar zu PhysX –  AI, Characterverhalten, Kleidung, … •  Integration in Engine –  Wenigsten Entwickler sind Physiker –  Nicht mehr nur 3D-­‐Rendering Havok Call of Duty: Black Ops II (c) 2013, Peter Sturm, Universität Trier 19 Computerspiele Sommer 2013 Literatur •  Steve Rabin (Herausgeber) Introduction to Game Development Charles River Media, 2005 Kapitel 4.3 •  David M. Bourg Physics for Game Developers O’Reilly, 2001 –  Deutlich theoretischer –  C++ Beispiele inkl. Auyau sinnvoller Grundklassen (c) 2013, Peter Sturm, Universität Trier 20 
Herunterladen