ph_fps_max_lock
Diese Variable bestimmt die Framerate bzw. Auflösung der Physik-Kollisionserkennung
und die Aktualisierung von Physik-Entities. Höhere Werte führen zu mehr
Kollisionstests und Aktualisierungen, was Anwendungen stabiler und realistischer
macht, allerdings auf Kosten der Gesamt-Framerate. Aus Stabilitätsgründen
wird die Physik-Framerate (und der Kehrwert, die Physik-Schrittweite) auf einen
festen Wert gesetzt, im Gegensatz zur Render-Framerate, die beliebige Schrittweiten
unterstützt.
Bereich:
0 .. 100 (Default 70)
Typ:
var
Bemerkungen:
Für Engine-Versionen vor 6.4 sollte die Physik-Framerate immer ein
ganzzahliges Vielfaches der Renderframerate sein, da es sonst zu einem 'Stottereffekt'
kommen kann. Wenn fps_max == 50, dann sind 50, 100, 150, 200 usw. gültige
Werte für ph_fps_max_lock. Mit diesen Werten ist gewährleistet,
dass jeder Renderframe aus der gleichen Anzahl von Physikframes besteht (1,2,3,4,etc).
Wäre in diesem Beispiel hingegen ph_fps_max_lock == 75, so würde
der erste Renderframe einen Physikframe enthalten, der nächste dann 2 Physikframes
und der übernächste wieder nur einen Physikframe. Auf dem Bildschirm
bewirkt dies eine rueckelige Bewegung, da dann Physikentities alle 2 Frames 'vorwärtsspringen'.
Um dies zu verhindern, sollten die folgenden Einstellungen am Anfang der main
Funktion vorgenommen werden: fps_max auf einen niedrigen Wert (wie 30),
ph_fps_max_lock= n* fps_max; fps_lock=on; und time_smooth=0.
Spätere Engine-Versionen unterstützen beliebige Werte für ph_fps_max_lock
und time_smooth, da die Positionen von Physikentities interpoliert werden.
Beispiel:
fps_max = 40;
ph_fps_max_lock = 80; // 2 Physik-Frames pro Render-Frame
Siehe auch:
time, time_factor,
fps_max, fps_min, fps_lock
► Aktuelle Version Online