LOD: Unterschied zwischen den Versionen

Aus OMSIWiki
Wechseln zu:Navigation, Suche
(Anwendung von LODs)
(LOD-Berechnung in OMSI)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
 +
''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: [http://de.wikipedia.org/wiki/Level_of_Detail Wikipedia: Level of Detail]
 
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: [http://de.wikipedia.org/wiki/Level_of_Detail Wikipedia: Level of Detail]
  
Zeile 5: Zeile 7:
 
[[Datei:2012 0716 08 Performance.jpg|600px|thumb|right|Visualisierung der LOD-Berechnung von OMSI.]]
 
[[Datei:2012 0716 08 Performance.jpg|600px|thumb|right|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 Kogel 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).
+
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).
 
Genau genommen wird folgendermaßen gerechnet: Screensize = 2 * visualRadius / (Entfernung * Öffnungswinkel).
Zeile 65: Zeile 67:
  
 
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.
 
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.
 +
 +
[[Kategorie:Nachschlagewerk für Addon-Entwickler]]

Aktuelle Version vom 15. Juli 2012, 17:02 Uhr

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.