Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

81

20.02.2011, 09:34

Der Vorschlag von Blue Cobold funktioniert wunderbar für konstante und analytisch beschreibbare Bewegungen. Sobald nur ein Parameter jedoch nicht mehr näherungsweise stationär sind muss man auf iterative Verfahren zurückgreifen.

Die hier immer besprochene Methode zur iterativen Berechnung ist die Euler Methode, welches ein Verfahren erster Ordnung ist und das ungenauste von allen. Sollte man damit ein Problem haben lassen sich Integrationsverfahren höherer Ordnung verwenden.

Wenn ich mich recht erinnere ist es in den Simulationen bei uns am Institut üblich für solche Probleme die Runge Kutta Methode 4ter Ordnung zu verwenden. Es behebt nicht das Problem, dass iterative Methoden in ungünstigen Fällen instabil sind, jedoch erreicht man damit eine wesentlich höhere Genauigkeit als mit der Euler Methode und kann bei Verwendung konstanter Abtastraten (fixed time step) die Verteilung der Fehler sehr genau bestimmen.

Jedoch ist das denke ich mehr Aufwand als in der Spieleentwicklung idR nötig ist. In Spielen geht es um Wahrnehmung nicht um Genauigkeit. Die Kugel die man abfeuert muss nicht dann treffen wenn es physikalisch 100% korrekt ist, der Spieler sollte bloß das Gefühl haben dass es physialisch korrekt ist.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

82

20.02.2011, 18:52

Ja, aber sie muss immerhin treffen ;) Und das ist nicht unbedingt bei jeder Framerate gegeben, wenn ein instabiles, iteratives System verwendet wird (Tankwars mit Lag oder low-FPS z.B.). Bei anderen Dingen als einem Schuss kann es auch zu anderen ungewollten Ergebnissen kommen.

Runge Kutta ist nett, zumindest was ich noch so aus der Numerik-Vorlesung weiß :P Aber wer baut das schon in sein Game ein?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Elmaron

unregistriert

83

03.06.2011, 22:57

(entfernt)

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Elmaron« (06.02.2023, 00:33)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

84

03.06.2011, 23:42

Eben gerade bei komplexer Physik gehts nurmehr iterativ. Sobald es komplexer wird als z.B. ne Wurfparabel kannst du analytisch knicken. Die "großen" Engines arbeiten natürlich sicher alle iterativ mit fixem Timestep...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

85

04.06.2011, 08:03

Dafür ist nach eigenen Tests ein iteratives System ideal und deutlich stabiler als sonstiges Floatzeitfaktorgepansche.

Dir ist aber schon klar, dass iterative Systeme auch das so genannte "Floatzeitfaktorgepansche" nutzen müssen? Denn wie willst du sonst den nächsten Schritt der Iteration berechnen?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Elmaron

unregistriert

86

05.06.2011, 12:57

(entfernt)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Elmaron« (06.02.2023, 00:33)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

87

05.06.2011, 14:23

Und ich dachte immer Multiplikation (Floatzeitfaktor) sei numerisch stabil und Addition (Iteration) wäre das numerisch instabile Problem ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Elmaron

unregistriert

88

05.06.2011, 20:32

(entfernt)

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Elmaron« (06.02.2023, 00:32)


Werbeanzeige