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