Spielephysik: Unterschied zwischen den Versionen
Kowa (Diskussion | Beiträge) |
Kowa (Diskussion | Beiträge) |
||
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 | ==Grundannahmen für die 2D-Beispiele im GlossarWiki == | ||
Es sei ein zweidimensionales geometrisches Objekt <code>g</code> gegeben, das folgende Attribute habe: | Es sei ein zweidimensionales geometrisches Objekt <code>g</code> gegeben, das folgende Attribute habe: | ||
Zeile 29: | Zeile 29: | ||
* <code>m</code>: Masse (die Einheit ist irrelevant, sie muss nur für alle Bälle dieselbe sein) | * <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 | Die [[Frequenz]] der Neuberechnung der Positionen aller im System vorhandener Objekte sei <code>f</code>, | ||
{{dh}}, die Positionen werden <code>f</code> mal pro Sekunde neuberechnet. Wenn es zu keiner Kollision kommt, wird | {{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: | |||
$x$- bzw. $y$-Richtung verschoben: | |||
<source lang="javascript"> | <source lang="javascript"> | ||
Zeile 39: | Zeile 38: | ||
</source> | </source> | ||
Je höher die | Je höher die Frequenz <code>f</code> ist, desto genauer ist die Simulation. | ||
<!-- | <!-- | ||
Zeile 49: | Zeile 48: | ||
Geschwindigkeitsvektoren. | Geschwindigkeitsvektoren. | ||
{{TBD}} | |||
Es gilt also, dass sich die beiden Bälle zu Zeitpunkt $t_0$ an den Positionen $s_1$ und $s_2$ befinden. | 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. | 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. |
Version vom 5. November 2016, 17:55 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 2D-Beispiele im GlossarWiki
Es sei ein zweidimensionales geometrisches Objekt g
gegeben, das folgende Attribute habe:
x
,y
: Position (Einheit: Pixel)vx
,vy
: Geschwindigkeit in $x$- und $y$-Richtung (Einheit: Pixel/s)m
: 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 Objekte sei f
,
d. h., die Positionen, Geschwindigkeiten und Massen werden f
mal pro Sekunde neuberechnet. Wenn es zu keiner Kollision kommt, wird
das Objekt um vx/f
bzw. vy/f
Pixel in $x$- bzw. $y$-Richtung verschoben:
b.x += b.vx/f;
b.y += b.vy/f;
Je höher die Frequenz f
ist, desto genauer ist die Simulation.
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.
TO BE DONE
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, d. h. 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, d. h., 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
- Kowarschick (WebProg): Wolfgang Kowarschick; Vorlesung „Web-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2024; Quellengüte: 3 (Vorlesung)