Spielephysik: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 10: Zeile 10:
==Definition==
==Definition==
Eine Spielephysik (Physik-Engine) wird zum Simulieren der physikalischen Eigenschaften von Objekten in einem Computerspiel genutzt. Dadurch wirkt das Spiel realistischer.
Eine Spielephysik (Physik-Engine) wird zum Simulieren der physikalischen Eigenschaften von Objekten in einem Computerspiel genutzt. Dadurch wirkt das Spiel realistischer.
Die Physik-Engine simuliert anhand physikalischer Gesetze und Regeln das Verhalten von Personen und Gegenständen in der Spielewelt. Zum Beispiel berechnet die Spielephysik Kollisionen von Gegenständen und deren Auswirkung. Um die Kollision zwischen zwei Gegenständen festzustellen werden meist komplexe Kollisionsalgorithmen verwendet..
Die Physik-Engine simuliert anhand physikalischer Gesetze das Verhalten von Gegenständen, Pesonen und anderen Objekte.  


==Grundannahmen für die Beispeile im GlossarWiki ==
In folgenden Punkte unterscheidet sich die Spielephysik von realer Physik und physikalischen Simulationen realer pysikalischer Systeme:


Es sei ein zweidimensionales geometrisches Objekt <code>g</code> gegeben, das folgende Attribute habe:
* Die Simulation erfogt mittels diskreter Zeitschritte. Je kleiner die Zeitschritte sind, desto genauer und stabiler sind die Simulationsergebnisse. (Dies gilt meist auch für Simulationen realer pysikalischer Systeme).
* Die Simulationsergebnisse müssen natürlich oder zumindest glaubwürdig wirken, aber nicht real sein.
* Die Geschwindigkeit der Berechnungen ist wichtiger, als die Genauigkeit. Die negativen Auswirkungen einer geringen [[Framerate]] sind deutlich gravierender, als beispielsweise die ungenaue Platzierung von Objekte.
* Die Stabilität der Berechnungsergebnisse ist dagegen wichtig. Beispielsweise muss in einer Weltraumsimulation ein Mond dauerhaft um seinen Planeten kreisen, solange keine äußere Kraft ihn zwingt, seine Bahn zu verlassen.
* Es können auch irreale physikalische Regeln simuliert werden. Beispielsweise können feste Körper in bestimmten Situatioen einander durchdringen oder es können bestimmte Gegenstände in bestimmten Situationen zu anderen Orten teleportiert werden.
* Falls feste Körper simuliert werden, muss allerdings verhindert werden, dass diese ineinander eindringen ([[Penetration]]) oder sich gar durchdringen ([[Tunneling]]) können.


* <code>x</code>, <code>y</code>: Position (Einheit: Pixel)
==Grundannahmen für die Beispiele im GlossarWiki ==
* <code>vx</code>, <code>vy</code>: Geschwindigkeit in $x$- und $y$-Richtung (Einheit: Pixel/s)
* <code>m</code>: Masse (die Einheit ist irrelevant, sie muss nur für alle Bälle dieselbe sein)


Die [[Frequenz]] der Neuberechnung der Positionen aller im System vorhandener Bälle sei <code>f</code>,
Es sei ein geometrisches Objekt $g$ gegeben, das folgende Attribute habe:
{{dh}}, die Positionen werden <code>f</code> mal pro Sekunde neuberechnet. Wenn es zu keiner Kollision kommt, wird
der Ball um <code>vx/f</code> bzw. <code>vy/f</code> Pixel in
$x$- bzw. $y$-Richtung verschoben:


<source lang="javascript">
* $r = (r_x, r_y, r_z)$: Position im Raum (Längeneinheiten). Die Position bezieht sich immer auf einen bestimmten Punkt des Objektes $g$, {{zB}} den Schwerpunkt.
  b.x += b.vx/f;
* $v = (v_x, v_y, v_z)$: Geschwindigkeit (''velocity'') in $x$-, $y$ und $z$-Richtung (Einheit: Längeneinheiten/s).
  b.y += b.vy/f;
* $a = (a_x, a_y, a_z)$: Eigenbeschleunigung (''acceleration'') in $x$-, $y$ und $z$-Richtung wie beispielsweise durch einen Motor (Einheit: Längeneinheiten/s^2). Im Allgemeinen wirken Kräfte von außen auf ein Objekt, wie {{zB}} Anziehungskräfte. Diese werden nicht im Objekt gespeichert.
</source>
* $m$: Masse (Gewichtseinheiten)


Je höher die Frequent <code>f</code> ist, desto genauer wird die Bewegungsbahn der Bälle simuliert.
Im Falle von zweidimensionalen Objekten entfällt jeweils die $z$-Koordinate.


<!--
Ein geometrisches Objekt kann auch rotieren. Dann hat es noch weitere Attribute, wie [[Winkelgeschwindigkeit]], [[Drehachse]] und [[Drehmatrix]].
Im Folgenden seinen $s_1 = \begin{pmatrix}s_{1x}\\s_{1y}\end{pmatrix}$ und $s_2 = \begin{pmatrix}s_{2x}\\s_{2y}\end{pmatrix}$ die Startpositionen
In gewissen Situationen wird einem geometrischen Objekt auch eine Lebensdauer zugewiesen. Am Ende der Lebensdauer wird das zugehörige
zweier Balle und $v_1 = \begin{pmatrix}v_{1x}\\v_{1y}\end{pmatrix}$ und $v_2 = \begin{pmatrix}v_{2x}\\v_{2y}\end{pmatrix}$ die zugehörigen
Objekt automatisch gelöscht. Insbesondere im Fall von [[Partikelsystem]]en (Schnee, Regen, Nebel etc.) ist dieses Attribut wichtig. 
Geschwindigkeitsvektoren.-->
Im Folgenden seinen $s_1 = (s_{1x},s_{1y})$ und $s_2 = (s_{2x},s_{2y})$ die Startpositionen
Die Neuberechnung Attribute aller im System vorhandener Objekte erfolgt in diskreten Schritten, {{dh}} die Attributwerte werden
zweier Balle und $v_1 = (v_{1x},v_{1y})$ und $v_2 = (v_{2x},v_{2y})$ die zugehörigen
nach jeweils einer gewissen, möglichst kurzen Zeitspanne neu berechnet.
Geschwindigkeitsvektoren.


Es gilt also, dass sich die beiden Bälle zu Zeitpunkt $t_0$ an den Positionen $s_1$ und $s_2$ befinden.
==Physikalische Grundlagen==
Eine Sekunde später, {{dh}} zum Zeitpunkt $t_0+1$ befinden sich sich an den Positionen $s_1+v_1$ und $s_2+v_2$, sofern sie nicht kollidieren.
Wenn die Neuberechnung mit einer [[Frequenz]] $f$ Hz erfolgt, {{dh}}, wenn die [[Periodendauer]] $T = 1/f$ beträgt, dann
befinden sich die Bälle nach der Berechnung an den Positionen $s_1+Tv_1$ und $s_2+Tv_2$, sofern sie nicht kollidieren.


In Folgenden wird stets der Fall $t=1$ angenommen. Alle Aussagen, die für einen ''beliebigen'' Geschwindigkeitsvektor
Üblicherweise basiert eine Spielephysik auf den [[Bewegungsgesetzen von Newton]]<ref name="Kuchling (1976)">{{Quelle|Kuchling (1976)}}</ref>:
$v$ gelten, gelten dann natürlich auch für $v' := tv$.
 
===Erstes Bewegungsgestz von Newton===
 
<i>Ein Körper verharrt in Ruhe oder in geradliniger, gleichförmiger Bewegung, solange er nicht durch einwikende Kräft gezungen wird,  
diesen Bewegungszustand zu ändern.</i><ref name="Kuchling (1976)"/>


==Quellen==
==Quellen==

Aktuelle Version vom 6. November 2016, 12:23 Uhr

Dieser Artikel wird derzeit von einem Autor gründlich bearbeitet. Die Inhalte sind daher evtl. noch inkonsistent.

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 1
(nur rudimäntär überprüft)
Umfang: 1
(zu gering)
Quellenangaben: 1
(fehlen großteils)
Quellenarten: 3
(gut)
Konformität: 5
(ausgezeichnet)

Definition

Eine Spielephysik (Physik-Engine) wird zum Simulieren der physikalischen Eigenschaften von Objekten in einem Computerspiel genutzt. Dadurch wirkt das Spiel realistischer. Die Physik-Engine simuliert anhand physikalischer Gesetze das Verhalten von Gegenständen, Pesonen und anderen Objekte.

In folgenden Punkte unterscheidet sich die Spielephysik von realer Physik und physikalischen Simulationen realer pysikalischer Systeme:

  • Die Simulation erfogt mittels diskreter Zeitschritte. Je kleiner die Zeitschritte sind, desto genauer und stabiler sind die Simulationsergebnisse. (Dies gilt meist auch für Simulationen realer pysikalischer Systeme).
  • Die Simulationsergebnisse müssen natürlich oder zumindest glaubwürdig wirken, aber nicht real sein.
  • Die Geschwindigkeit der Berechnungen ist wichtiger, als die Genauigkeit. Die negativen Auswirkungen einer geringen Framerate sind deutlich gravierender, als beispielsweise die ungenaue Platzierung von Objekte.
  • Die Stabilität der Berechnungsergebnisse ist dagegen wichtig. Beispielsweise muss in einer Weltraumsimulation ein Mond dauerhaft um seinen Planeten kreisen, solange keine äußere Kraft ihn zwingt, seine Bahn zu verlassen.
  • Es können auch irreale physikalische Regeln simuliert werden. Beispielsweise können feste Körper in bestimmten Situatioen einander durchdringen oder es können bestimmte Gegenstände in bestimmten Situationen zu anderen Orten teleportiert werden.
  • Falls feste Körper simuliert werden, muss allerdings verhindert werden, dass diese ineinander eindringen (Penetration) oder sich gar durchdringen (Tunneling) können.

Grundannahmen für die Beispiele im GlossarWiki

Es sei ein geometrisches Objekt $g$ gegeben, das folgende Attribute habe:

  • $r = (r_x, r_y, r_z)$: Position im Raum (Längeneinheiten). Die Position bezieht sich immer auf einen bestimmten Punkt des Objektes $g$, z. B. den Schwerpunkt.
  • $v = (v_x, v_y, v_z)$: Geschwindigkeit (velocity) in $x$-, $y$ und $z$-Richtung (Einheit: Längeneinheiten/s).
  • $a = (a_x, a_y, a_z)$: Eigenbeschleunigung (acceleration) in $x$-, $y$ und $z$-Richtung wie beispielsweise durch einen Motor (Einheit: Längeneinheiten/s^2). Im Allgemeinen wirken Kräfte von außen auf ein Objekt, wie z. B. Anziehungskräfte. Diese werden nicht im Objekt gespeichert.
  • $m$: Masse (Gewichtseinheiten)

Im Falle von zweidimensionalen Objekten entfällt jeweils die $z$-Koordinate.

Ein geometrisches Objekt kann auch rotieren. Dann hat es noch weitere Attribute, wie Winkelgeschwindigkeit, Drehachse und Drehmatrix. In gewissen Situationen wird einem geometrischen Objekt auch eine Lebensdauer zugewiesen. Am Ende der Lebensdauer wird das zugehörige Objekt automatisch gelöscht. Insbesondere im Fall von Partikelsystemen (Schnee, Regen, Nebel etc.) ist dieses Attribut wichtig.

Die Neuberechnung Attribute aller im System vorhandener Objekte erfolgt in diskreten Schritten, d. h. die Attributwerte werden nach jeweils einer gewissen, möglichst kurzen Zeitspanne neu berechnet.

Physikalische Grundlagen

Üblicherweise basiert eine Spielephysik auf den Bewegungsgesetzen von Newton[1]:

Erstes Bewegungsgestz von Newton

Ein Körper verharrt in Ruhe oder in geradliniger, gleichförmiger Bewegung, solange er nicht durch einwikende Kräft gezungen wird, diesen Bewegungszustand zu ändern.[1]

Quellen

  1. Kowarschick (WebProg): Wolfgang Kowarschick; Vorlesung „Web-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2024; Quellengüte: 3 (Vorlesung)