Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#1

Newton Simulation beschleunigen

  Alt 24. Feb 2007, 12:44
Hallo,

ich bin gerade dabei für meine 2D Engine ein Physiksystem mit Hilfe von Newton zu bauen. Das ganze Funktioniert soweit ganz gut. Problem ist nur, dass die Simulation schrecklich träge ist, d.h. meine Kisten fallen furchtbar langsam.

Mit folgendem Code rufe ich die "NewtonUpdate" Funktion mit einer festgelegten Framerate (100FPS) auf:
Delphi-Quellcode:
FTime := FTime + timegap*1000; //Timegap ist die Zeit seit dem letzten Frame in Sekunden
while FTime > FInterval do
begin
  FTime := FTime - FInterval;
  NewtonUpdate(NewtonWorld, FInterval / 1000);
end;
Mit folgendem Code habe ich genau das gleiche Ergebnis:
NewtonUpdate(NewtonWorld, timegap); Mit
NewtonUpdate(NewtonWorld, 0.1); ist die Geschwindigkeit in Ordnung aber ist nun von den FPS abhängig.

In den Demos, die ich gefunden habe wird das ganze wie im ersten Code gemacht, allerdings fallen die Kisten dort mit "Normaler" geschwindigkeit.

Ich denke, dass dies bei mir am Koordinatensystem liegt. Schließlich arbeitet meins mit absoluten Pixeln und in den 3D Anwendungen mit viel kleineren Fließkommazahlen.

Kann ich irgendwie die Bewegungen schneller machen, also die gesamte Simulation beschleunigen? In der Dokumentation bin ich auf keine entsprechende Funktion gestoßen, aber vielleicht bin ich auch einfach nur Blind.

Schonmal Danke,
Igel457
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat