Bildrate

Die vollständigen Messungen stehen im Beitrag Grafikeinstellungen und FPS im Vergleich. Kurz: In FlightGear bremst fast immer ein einzelner Prozessorkern, nicht die Grafikkarte.

Meine Einstellungen

"$FG_BASIS/werkzeuge/starten.sh" --aircraft=c172p --airport=EDDE \
  --graphics-preset=high-quality \
  --texture-filtering=16 \
  --prop:/sim/rendering/multithreading-mode=CullThreadPerCameraDrawThreadPerContext \
  --visibility=40000 \
  --prop:/sim/rendering/clouds3d-vis-range=40000 \
  --disable-ai-traffic

Der größte Hebel: Mehrkern-Modus

Der Modus legt Aussortieren und Zeichnen auf eigene Kerne. Gemessen über dem Thüringer Wald:

multithreading-mode

Bilder pro Sekunde

nicht gesetzt

35,3 / 36,8 / 36,5

DrawThreadPerContext

38,0

CullDrawThreadPerContext

35,4

AutomaticSelection

37,3

CullThreadPerCameraDrawThreadPerContext

46,1 / 47,4 / 47,7

Parkend brachte er je nach Flugzeug 31 bis 46 %.

Warnung

Bei einem Flugzeug, dessen Skripte den Hauptkern auslasten, bringt er nichts, zum Beispiel beim G1000. Manches Flugzeug zeigte damit mehr Fehlermeldungen, für lange unbeaufsichtigte Flüge nutze ich deshalb SingleThreaded.

Was die Regler bringen

Variante

Bilder pro Sekunde

Aussehen

high-quality, Baumdichte 2,0, Texturfilter 8×

35,4

dichter Wald

high-quality, Baumdichte 2,0, Texturfilter 16×

35,5

dichter Wald, schärferer Boden

high-quality, Baumdichte 0,6, Texturfilter 16×

37,9

lichter Wald, kahle Stellen

Preset medium

41,9

weniger Bäume und Details

Der Texturfilter kostet also nichts. Wer mehr Bildrate braucht, nimmt lieber das Preset medium als weniger Bäume.

Stolperfalle: Das Preset überschreibt Optionen

--graphics-preset wird nach einzelnen --prop-Optionen angewendet. Eine Baumdichte daneben hat also keine Wirkung. Wer abweichen will, lässt das Preset weg und übergibt dessen Werte einzeln, sie stehen in fgdata/Video/high-quality-preset.xml. --texture-filtering wird dagegen übernommen.

Was wirklich hilft

  • Andere Programme schließen, vor allem Browser mit vielen Tabs.

  • Ein sparsames Flugzeug wählen: Aufwendige Glascockpits in Nasal kosten mehr als jede Grafikeinstellung.

  • Nur eine Änderung gleichzeitig messen und am Ende gegenprüfen.

Selbst messen

import time
from fg_steuerung import Fg

fg = Fg()
werte = []
for _ in range(60):
    werte.append(float(fg.get("/sim/frame-rate") or 0))
    time.sleep(1)
print("Mittel:", round(sum(werte) / len(werte), 1), "Min:", min(werte))

Beim Messen im Flug sollte am Ende alles wieder auf den Ausgangswert und nochmal gemessen werden. Bei mir stieg die Bildrate auch mit wieder eingeschalteten Effekten, sie kam also vom Gelände und nicht von den Einstellungen.