Spielephysik: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
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 Beispeile im GlossarWiki ==
==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 Bälle sei <code>f</code>,
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
der Ball um <code>vx/f</code> bzw. <code>vy/f</code> Pixel in
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 Frequent <code>f</code> ist, desto genauer wird die Bewegungsbahn der Bälle simuliert.
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

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