Spielephysik: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 21: Zeile 21:
* Falls feste Körper simuliert werden, muss allerdings verhindert werden, dass diese ineinander eindringen ([[Penetration]]) oder sich gar durchdringen ([[Tunneling]]) können.
* 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 2D-Beispiele im GlossarWiki ==
==Grundannahmen für die Beispiele im GlossarWiki ==


Es sei ein zweidimensionales geometrisches Objekt <code>g</code> gegeben, das folgende Attribute habe:
Es sei ein geometrisches Objekt $g$ gegeben, das folgende Attribute habe:


* <code>x</code>, <code>y</code>: Position (Einheit: Pixel)
* $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.
* <code>vx</code>, <code>vy</code>: Geschwindigkeit in $x$- und $y$-Richtung (Einheit: Pixel/s)
* $v = (v_x, v_y, v_z)$: Geschwindigkeit (''velocity'') in $x$-, $y$ und $z$-Richtung (Einheit: Längeneinheiten/s).
* <code>m</code>: Masse (die Einheit ist irrelevant, sie muss nur für alle Bälle dieselbe sein)
* $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.
* $m$: Masse (Gewichtseinheiten)


Die [[Frequenz]] der Neuberechnung der Positionen aller im System vorhandener Objekte sei <code>f</code>,
Im Falle von zweidimensionalen Objekten entfällt jeweils die $z$-Koordinate.
{{dh}}, die Positionen, Geschwindigkeiten und Massen werden <code>f</code> mal pro Sekunde neuberechnet. Wenn es zu keiner Kollision kommt, wird
das Objekt um <code>vx/f</code> bzw. <code>vy/f</code> Pixel in $x$- bzw. $y$-Richtung verschoben:


<source lang="javascript">
Ein geometrisches Objekt kann auch rotieren. Dann hat es noch weitere Attribute, wie [[Winkelgeschwindigkeit]], [[Drehachse]] und [[Drehmatrix]].
  b.x += b.vx/f;
In gewissen Situationen wird einem geometrischen Objekt auch eine Lebensdauer zugewiesen. Am Ende der Lebensdauer wird das zugehörige
  b.y += b.vy/f;
Objekt automatisch gelöscht. Insbesondere im Fall von [[Partikelsystem]]en (Schnee, Regen, Nebel etc.) ist dieses Attribut wichtig.
</source>
Die Neuberechnung Attribute aller im System vorhandener Objekte erfolgt in diskreten Schritten, {{dh}} die Attributwerte werden
nach jeweils einer gewissen, möglichst kurzen Zeitspanne neu berechnet.


Je höher die Frequenz <code>f</code> ist, desto genauer ist die Simulation.
==Physikalische Grundlagen==


<!--
Üblicherweise basiert eine Spielephysik auf den [[Bewegungsgesetzen von Newton]]<ref name="Kuchling (1976)">{{Quelle|Kuchling (1976)}}</ref>:
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
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
Geschwindigkeitsvektoren.-->
Im Folgenden seinen $s_1 = (s_{1x},s_{1y})$ und $s_2 = (s_{2x},s_{2y})$ die Startpositionen
zweier Balle und $v_1 = (v_{1x},v_{1y})$ und $v_2 = (v_{2x},v_{2y})$ die zugehörigen
Geschwindigkeitsvektoren.


{{TBD}}
===Erstes Bewegungsgestz von Newton===
Es gilt also, dass sich die beiden Bälle zu Zeitpunkt $t_0$ an den Positionen $s_1$ und $s_2$ befinden.
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
<i>Ein Körper verharrt in Ruhe oder in geradliniger, gleichförmiger Bewegung, solange er nicht durch einwikende Kräft gezungen wird,  
$v$ gelten, gelten dann natürlich auch für $v' := tv$.
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)