LOD

Aus OMSIWiki
Wechseln zu:Navigation, Suche

Hinweis: Dieser Artikel wurde noch nicht ins Englische übersetzt!

LOD bedeutet "Level of Detail" und beschreibt eine Technik, Leistung zu sparen, indem mehrere unterschiedlich komplexe Modelle für verschiedene Situationen vorgehalten werden. Eine allgemeine Beschreibung finden Sie hier: Wikipedia: Level of Detail

LOD-Berechnung in OMSI

Visualisierung der LOD-Berechnung von OMSI.

Um zu entscheiden, welche Detailstufe bzw. welches LOD gezeichnet werden soll, teilt OMSI den Durchmesser der das Objekt umschreibenden Kugel durch den Öffnungswinkel der Kamera (vertikal) und bezeichnet diesen Wert als "Screensize", also Größe auf dem Bildschirm, wie in der Abbildung gezeigt. Dieses Maß läuft von 0.0 bis 1.0 (dann ist das Objekt etwa so groß wie der Bildschirmausschnitt) oder darüber hinaus (wenn das Objekt noch größer zusehen ist).

Genau genommen wird folgendermaßen gerechnet: Screensize = 2 * visualRadius / (Entfernung * Öffnungswinkel).

Der hieraus resultierende Wert wird so, wie er ist, direkt für die Auswahl des LODs verwendet. Außerdem wird hierüber und über die Grafikoption "Mindestobjektgröße" darüber entschieden, ob das Objekt überhaupt dargestellt wird.

Hierfür wird die Screensize durch sog. Detailfactor geteilt und mit dem in den Grafikoptionen eingestellten Wert verglichen. Ist die Screensize kleiner als der vorgewählte Mindestwert, erscheint das Objekt nicht.

Der Detailfactor sorgt hierbei dafür, dass wichtige, kleine Objekte wie Ampeln schon wesentlich früher sichtbar werden (Detailfactor 0.1), sehr große und unwichtige Objekte wie große Straßenleuchten, aber erst später (z.B. Detailfactor 3.0). Die Ampeln sind also schon dann sichtbar, wenn sie nur 10% der eingestellten Größe auf dem Bildschirm erreichen.

Anwendung von LODs

LODs können bei Menschen, Szenerieobjekten und Fahrzeugen verwendet werden. Eingetragen werden sie in die model.cfg, sofern vorhanden, sonst in die entsprechende *.ovh, *.bus, *.sco oder *.hum-Datei, also einfach dort, wo auch die [mesh]-Befehle liegen.

Ein typischer Aufbau sieht dann folgendermaßen aus:

...

[LOD]
0.6

[mesh]
...

[mesh]
...

.
.
.

[LOD]
0.2

[mesh]
...

[mesh]
...
.
.
.

[LOD]
0

[mesh]
...

[mesh]
...

.
.
.

Der Befehl "[LOD] 0.6" leitet all jene Befehle ein, die die LOD-Stufe betreffen, die angezeigt wird, wenn das Objekt größer als 60% des Bildschirmes ist. Der darauffolgende Befehl [LOD] 0.2 leitet dementsprechend alle Befehle ein, die die nächst-einfachere LOD-Stufe betreffen, die angezeigt wird, wenn das Objekt noch größer als 20% (aber schon kleiner als 60%) des Bildschirmes ist. Der letzte Befehl betrifft die LOD-Stufe bis 0% Größe, also die weitest-entfernte und einfachste LOD-Stufe.