Spielephysik: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Zeile 25: Zeile 25:
Es sei ein geometrisches Objekt $g$ gegeben, das folgende Attribute habe:
Es sei ein geometrisches Objekt $g$ gegeben, das folgende Attribute habe:


* $r =  (r_x, r_y, r_z)$: Position (Längeneinheiten). Die Position bezieht sich immer auf einen bestimmten Punkt des Objektes $g$, {{zB}} den Schwerpunkt.
* $p =  (p_x, p_y, p_z)$: Position im Raum (Längeneinheiten). Die Position bezieht sich immer auf einen bestimmten Punkt des Objektes $g$, {{zB}} den Schwerpunkt.
* $v = (v_x, v_y, v_z)$: Geschwindigkeit in $x$-, $y$ und $z$-Richtung (Einheit: Längeneinheiten/s).
* $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 in $x$-, $y$ und $z$-Richtung wie beispielsweise durch einen Motor (Einheit: Längeneinheiten/s^2). Es können aber auch Kräfte von außen auf ein Objekt wirken, wie {{zB}} Anziehungskräfte. Diese werden nicht im Objekt gespeichert.
* $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)
* $m$: Masse (Gewichtseinheiten)


Ein geometsiches Objekt kann auch rotieren. Dann hat es noch weitere Attribute, wie [[Winkelgeschiwndigkeit]], [[Drehachse]] und [[Drehmatrix]].
Im Falle von zweidimensionalen Objekten entfällt jeweils die $z$-Koordinate.
Dieser Fall wird aber derzeit im GlossarWiki nicht behandelt.


Die NeuberechnungAttribute aller im System vorhandener Objekte erfolget in diskreten Schritten.
Ein geometrisches Objekt kann auch rotieren. Dann hat es noch weitere Attribute, wie [[Winkelgeschwindigkeit]], [[Drehachse]] und [[Drehmatrix]].
{{TBD}}
In gewissen Situationen wird einem geometrischen Objekt auch eine Lebensdauer zugewiesen. Am Ende der Lebensdauer wird das zugehörige
{{dh}}, die Positionen, Geschwindigkeiten und Massen werden <code>f</code> mal pro Sekunde neuberechnet. Wenn es zu keiner Kollision kommt, wird
Objekt automatisch gelöscht. Insbesondere im Fall von [[Partikelsystem]]en (Schnee, Regen, Nebel etc.) ist dieses Attribut wichtig.
das Objekt um <code>vx/f</code> bzw. <code>vy/f</code> Pixel in $x$- bzw. $y$-Richtung verschoben:
 
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.
 
 
<!--
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.
 
 
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
$v$ gelten, gelten dann natürlich auch für $v' := tv$.


==Quellen==
==Quellen==

Version vom 6. November 2016, 12:12 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:

  • $p = (p_x, p_y, p_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.

Quellen

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