Levels of Details

Aus EEP Wiki
Wechseln zu: Navigation, Suche

Redaktioneller Hinweis.png


Bevor wir auf die technischen Feinheiten der LOD-Technik eingehen, müssen wir zunächst ein paar Grundlagen betrachten um das essentielle Problem zu erkennen, welches die anschließend beschriebene Aufbau- und Berechnungstechnik zwingend notwendig macht.

(Scherzhaft formulier...)

Gleich zu Anfang teilen wir Ihnen die erschütternde und für Sie bestimmt schockierende Erkenntnis mit: Zeit ihres Lebens werden Sie von ihrem Gehirn und dem Sehapparat auf ganz arglistige und gemeine Weise belogen! Wir verraten Ihnen hiermit die ganze Wahrheit und bitten dabei um Diskretion, nein, sogar um höchste Geheimhaltung...

Top secret.jpg

Aber Spaß bei Seite, denn die Lage ist ernst...

Die Hauptaufgabe einer jeden 3D-Grafikengine besteht in der Verortung von Objekten im virtuellen Raum (in den drei Dimensionen: Breite X, Höhe Y und Tiefe Z) und deren geschickter Skalierung, so dass die "dreidimensionalen" Objektdaten auf ein zweidimensionales Medium (nur Breite X mal Höhe Y), wie z.B. den Computerbildschirm projiziert werden können. Durch die lineare Skalierung der Objekte selbst, aber auch die relative Skalierung der Objekte zueinander wird die - für den Menschen typische - Wahrnehmung erzeugt: aus der Nähe betrachtet erscheinen uns die "Dinge" groß und in der Ferne erscheinen sie uns klein.

Dieses Wahrnehmungs- und Berechnungsprinzip gilt natürlich auch in EEP:

100-300m.jpg

Ein weiterer Faktor der menschlichen Wahrnehmung, der aus der konvexen Krümmung der Linse in unseren Augen resultiert, ist der sogenannte Blickwinkel. Schon das Wort "Blickwinkel" alleine besagt, dass es sich dabei nicht etwa um einen rechteckigen, in der Breite konstant bleibenden Blick-Streifen, sondern um einen Winkel handelt. Ein Winkel ist in der Geometrie ein Teil der Ebene, der von zwei in der Ebene liegenden Strahlen mit gemeinsamem Anfangspunkt, dem Scheitel (in unserem Fall dem Standort des Betrachters) begrenzt wird. Die Haupteigenschaft eines jeden Blickwinkels (egal ob klein, also eng, oder breit, also Weitwinkel) ist, dass mit zunehmender Raumtiefe auch die Breite des Sichtfeldes wächst und wir dadurch immer größere Fläche überblicken können, uns zugleich aber die Objekte (bedingt durch unsere Wahrnehmung) immer kleiner und somit "ungenauer" erscheinen.

Blickwinkel lod.jpg

Wenn wir diese beiden Aspekte mit einer Formel ausdrücken sollten, würde sie vermutlich so lauten: Je kleiner die Entfernung zwischen dem Betrachter und den Objekten, um so größer die Erscheinung der Objekte. Je größer die Entfernung zwischen dem Betrachter und den Objekten, desto größer auch das Sichtfeld (also die einsehbare Fläche) und umso höher die Anzahl der Objekte, die dadurch (wenn auch viel kleiner und ungenauer) wahrgenommen werden können.

Wenn wir die obigen Aussagen der Formel nun weiter vereinfachen, kommen wir zu folgendem Satz:

Je weiter die Objekte von uns entfernt sind, um so kleiner und ungenauer erscheinen sie uns, sie sind dafür aber um so zahlreicher!

Und genau diese Aussage beschreibt unser grundlegendes Problem. EEP bekommt (zumindest bisher) die volle Detaillierung aller Modelle zu berechnen - auch dann, wenn wir sie auf dem Bildschirm immer kleiner und dadurch viel ungenauer wahrnehmen können. Mehr noch; im Fernbereich sehen wir viel mehr Modelle als im Nahbereich und dennoch werden diese in einer gleichbleibend hohen Qualität, also mit gleichbleibender Anzahl der Dreiecke berechnet, was bei der Framerate zu erheblichen wenn nicht sogar katastrophalen Einbussen führt - die wir in Zukunft vermeiden möchten.

Um dieser Problematik entgegen zu wirken gibt es die Möglichkeit, vor der Darstellung von Objekten diese für die Grafikhardware bzw. Grafikengine zu optimieren. Bereits seit 1976 ist das wesentliche Prinzip bekannt, durch Reduzierung von überflüssigen Details Grafikleistung einzusparen, was auch im Ur-Programm Eisenbahn.exe european class (kurz EEEC) im Jahr 1998 verwirklicht wurde. Dabei wurde für jedes Rollmaterial jeweils die sogenannte "Simplex-Version" des Hauptmodells entworfen, welche bei zunehmender Raumtiefe automatisch ausgetauscht wurde. An diesem Prinzip wollen und müssen wir wieder anknüpfen, wobei die Methode nicht mehr ausschließlich auf Rollmaterialien, sondern auf alle in EEP vorkommenden Modellarten anzuwenden ist.


Levels of Detail (Die Detailstufen bzw. Qualitätsstufen eines Modells)

Als LOD-Algorithmen bezeichnet man in der Computergrafik allgemein gesagt die Verminderung des Rechenaufwandes durch Ausnützung von "kaum" bis "nicht mehr wahrnehmbaren" Unterschieden zwischen einem qualitativ hochwertigem und einem qualitativ minderwertigerem Objekt. Der Level of Detail eines Objektes ist die daraus resultierende Qualitätsstufe. In den meisten Fällen spielen nur die Entfernung zum Betrachter und der Qualitätsunterschied eine Rolle. Die Anwendung von LOD findet direkt am Drahtgitter statt, was sich auf die Anzahl der Dreiecke und Vertices, die gerendert werden, auswirkt.

An dieser Stelle sollten aber auch drei Nachteile der LOD-Technik erwähnt werden. Der erste, nahezu unumgängliche Nebeneffekt der LOD-Technik ist das sogenannte "Popping". Das bedeutet: Da es bei der LOD-Technik immer eine endliche Anzahl von Qualitätsstufen gibt (im Home-Nostruktor 13.0 sind es fünf) führt dies bei einem Übergang zwischen 2 Stufen unweigerlich zu einer (mehr oder weniger) groben Veränderung von einem Bild zum anderen. Der zweite Nachteil besteht darin, dass bei der Verminderung der Anzahl von Dreiecken (also der Vereinfachung der Polygone) andere Normal-Vektoren der Flächen entstehen, was zu Unterschieden in der Ausleuchtung der LODs führen kann. Dabei können manche Dreiecke (weil sie im Verhältnis zu anderen viel größer geworden sind) viel schneller das Licht aufnehmen und wirken dadurch bei bestimmten Winkeln heller. Der dritte und so gesehen der Haupt-Nachteil der LOD-Technik liegt für den Konstrukteur im erhöhten Arbeitsaufwand, der betrieben werden muss, um die Modelle der einzelnen Qualitätsstufen zu erstellen und deren adäquate Tausch-Entfernung zu bestimmen, die oft nur durch Tests bzw. direkte Vergleiche in EEP bestimmt werden kann.


LOD mit dem Home-Nostruktor 13.0 erstellen

Bevor wir zu der praktischen Umsetzung der LOD-Technik anhand eines einfachen Beispiels kommen, müssen wir zunächst das Funktionsprinzip kennen lernen und über einige Besonderheiten sowie Richtlinien Bescheid wissen, die bei der Anwendung dieser Technik sicherlich hilfreich sein werden.

Das Funktionsprinzip von LOD im Home-Nostruktor 13.0

Es mag erstaunlich klingen, aber trotz des langen Vorwortes lässt sich das komplette Funktionsprinzip ganz präzise, in nur einem Satz erklären:
Für jedes Objekt in der höchsten Qualitätsstufe, welches auf eine Transformationsachse gesetzt wurde (die Basis eingeschlossen), werden bis zu vier Objekte in jeweils geminderter Qualität erzeugt, deren Namen den Zusatz "_LOD1" bis "_LOD4" erhalten und mit zunehmender Entfernung zum Betrachter als Ersatz der vorigen Qualitätsstufe dargestellt werden - Punkt!

Irgend etwas sagt uns, dass Sie auch nach mehrmaligem Lesen des obigen Satzes gewisse Skepsis verströmen und sich vielleicht sagen: "Das kann irgendwie nicht stimmen, es ist doch ein himmelweiter Unterschied, ob ich eine komplexe Dampflokomotive mit 30 beweglichen Achsen, oder einen - mit Verlaub - dummen Vollpfosten baue".

Hierzu muss gesagt werden, dass es natürlich einen Unterschied gibt, der jedoch alleine aus der Komplexität des Drahtgitters der Lokomotive hervorgeht und nicht aus der Funktion dieser Technik, denn das LOD-Funktionsprinzip ist in allen Fällen identisch.

Als Beispiel 1. nehmen wir an; Sie bauen zuerst eine Lokomotive.
Diese besteht aus einem Chassis auf der Systemachse "Basis" und das daran gekreuzte Objekt heißt "Meine_erste_Lokomotive". Damit dieses Modell als Rollmaterial funktionieren kann, muss es die Systemachsen "_vRadsatz" und "_hRadsatz" besitzen, auf die jeweils die Objekte "Hinterachse" und "Vorderachse" gekreuzt wurden. Um das Modell für EEP ab der Version 8.0 exportieren zu können, muss es die LOD-Funktion unterstützen. Hierzu müssen Sie zunächst ein Objekt namens "Meine_erste_Lokomotive_LOD1" erstellen, welches eine vereinfachte Version des Lokchassis darstellt. Im nächsten Schritt wird ein weiteres Objekt erstellt, das den Namen "Hinterachse_LOD1" trägt. Auch dieses Objekt stellt die Vereinfachung des qualitativ hochwertigen Objektes "Hinterachse" dar. Im dritten Schritt wird ein weiteres Objekt mit dem Namen "Vorderachse_LOD1" erzeugt, welches sinngemäß die Vereinfachung des Objektes "Vorderachse" ist. Damit wären unter dem Aspekt der LOD-Funktion alle Anforderungen erfüllt, um das Modell für EEP ab 8.0 exportieren zu können.

Nun nehmen wir als Beispiel 2. an; Sie bauen den besagten "Vollpfosten" (wie auch immer dieser auszusehen hat).
Dieses Modell besteht lediglich aus einem Objekt namens "Pfosten", das auf die Systemachse "Basis" gekreuzt wurde. Auch wenn davon auszugehen ist, dass der Pfosten keine komplizierte Geometrie besitzen wird, so gelingt es vielleicht doch, die Geometrie noch weiter zu vereinfachen. Hierzu wird ein weiteres Objekt namens "Pfosten_LOD1" generiert und darin die vereinfachte Version des Pfostens aufgebaut. Auch in diesem Beispiel sind unter dem Gesichtspunkt der LOD-Funktion alle Anforderungen erfüllt, um das Modell für EEP ab der Version 8.0 exportieren zu können.

Aus dem Vergleich der beiden Beispiele geht hervor, dass für komplexe Modelle mit vielen Objekten auf beweglichen Transformationsachsen zwar mehr Aufwand betrieben werden muss (weil jedes einzelne Objekt mindestens eine Qualitätsstufe besitzen muss), aber das zugrundeliegende Prinzip, bei dem weitere Objekte mit dem Namenszusatz _LOD1 erstellt werden, ist das gleiche.

Nun werden Sie sich vielleicht fragen: "Wenn ich nach mühevoller Arbeit endlich ein Modell mit dem LOD1 habe, wozu brauche ich dann die restlichen LODs? Wofür ist der LOD2, LOD3 und LOD4 überhaupt gut?"

Wie bereits erwähnt, haben wir es bei der LOD-Technik immer mit einer endlichen Anzahl von Qualitätsstufen zu tun, was soviel bedeutet, dass die Qualitätsstufen nicht weich miteinander verrechnet werden - etwa wie beim Morphing - sondern dass es immer zu einem abruptem Austausch der Objekte kommt. Damit der Unterschied beim Austausch der hochwertigen zur minderwertigen Version nicht so sehr auffällt, müssen bzw. sollten mehrere, auf die jeweilige Entfernung zum Betrachter angepasste Qualitätsstufen folgen. Würde jedes Modell lediglich eine einzige Vereinfachung haben, müsste die Umschaltung - damit sie dem Betrachter nicht auffällt - erst sehr weit in der Ferne erfolgen, was die LOD-Funktion fast schon ad absurdum führen würde. Allgemein kann man sagen, dass, je mehr Dreiecke ein Modell in der qualitativ höchsten Stufe besitzt, um so mehr LODs sollte es aufweisen. Es ist zwar ein Gewinn, aber leider kein großer, wenn ein Modell aus nächster Nähe 50.000 Dreiecke und mit LOD1 nur noch 500 besitzt, da die Umschaltentfernung (mangels Zwischenstufen) extrem in die Tiefe des Raumes versetzt sein müsste.


Finessen der LOD-Technik

Wenn Sie das Funktionsprinzip von LOD - wie wir hoffen - nunmehr gut verstanden haben, können wir uns jetzt den Finessen dieser Technik widmen, die Sie anschließend beim Aufbau ihrer Modelle als eine Art "Checkliste" betrachten können:

1.Jedes Modell (egal welcher Art; ob ein Rollmaterial, Signal, Landschaftsobjekt, Immobilie, Gleisobjekt oder verladbares Gut), welches aus 300 oder mehr Dreiecken besteht, muss mindestens eine vereinfachte Version des Hauptmodells aufweisen, also mindestens den "LOD1" besitzen. Selbstverständlich kann die LOD-Technik auch bei Modellen zum Einsatz kommen, die aus noch weniger Dreiecken bestehen, denn auch ein 100- oder 50-Dreiecke-Modell kann mit zunehmender Entfernung noch weiter vereinfacht werden, was vor allem dann zum Tragen kommt, wenn gleichzeitig viele Modelle dieser Art berechnet werden müssen, wie z.B. Bäume, Büsche, Straßenlaternen, Leitpfosten usw.
2.Mit dem Home-Nostruktor 13.0 können für jedes Modell bis zu fünf Qualitätsstufen der Objekte erstellt werden, wobei das qualitativ hochwertigste als "LOD0" und das qualitativ minderwertigste als "LOD4" bezeichnet wird. Demnach bezeichnen wir das eigentliche Hauptmodel intern zwar als "LOD0", allerdings erfordert der Objektname in der höchsten Qualitätsstufe den Zusatznamen "_LOD0" nicht! Die Namenszusätze bei den vereinfachten Objekten, wie z.B. "_LOD1", "_LOD2", "_LOD3" und "_LOD4" müssen dagegen nach den Originalnamen der Objekte aufgeschrieben werden, damit sie von den Programmen EEP und Home-Nostruktor als solche erkannt werden.
3.Im Bezug auf die Qualitätsstufen der Objekte kann keine allgemein gültige Aussage getroffen werden, wie das Verhältnis der Anzahl der Dreiecke des Hauptmodells zu den einzelnen Vereinfachungen auszusehen hat. Dies hängt zunächst von der Größe des Modells (dessen Abmaßen) ab, dann aber auch von der geometrischen Substanz, also von der Anzahl der Dreiecke und Vertices, die das Modell bilden. Als Zweckmäßig sollte eine Vereinfachung der Modellgeometrie auf mindestens 50% angesehen werden, als erstrebenswert sogar auf 90% und mehr! Man muss sich immer vor Augen halten, dass das Ziel der LOD-Funktion darin besteht, aus einer mittleren Entfernung nur noch einen kleinen Bruchteil der Geometrie darzustellen, die das "Hauptmodell", also LOD0 aus nächster Nähe besitzt.
Beispiel:
Auf der ersten Abbildung zum Vorwort über die LOD-Technik sehen Sie mitunter Menschen-Figuren, die eine Größe von ca. 1,8 m aufweisen. Diese (recht einfachen) Modelle bestehen dennoch aus ca. 600 Dreiecken. Wie Sie es selbst ::nachvollziehen können, bereits in der Entfernung von 100 m sind diese Figuren nur noch einige wenige Pixel hoch. In der Entfernung von 300 m können Sie zwar erahnen, aber gar nicht mehr mit Bestimmtheit sagen, ob es sich ::überhaupt um Menschen-Figuren handelt, weil die "Details" wie Kopf, Hände und Beine gar nicht mehr vom Rumpf der Figuren zu unterscheiden sind. Ab dieser Entfernung (zumindest was die Menschen-Figuren angeht) könnte und ::sollte eine erheblich reduzierte (vereinfachte) Version des Hauptmodells, also ein LOD dargestellt werden. Ab einer Entfernung von ca. 400 - 500 m könnte anstatt der (bisher berechneten) Figuren mit 600 Dreiecken sogar ein ::einfacher Kubus zum Einsatz kommen, der lediglich aus fünf Seiten, also 10 Dreiecken besteht - dies würde kein Mensch merken, aber Ihr Computer, hier explizit die GPU der Grafikkarte um so mehr! Wie Sie aus dem Verhältnis ::von 600 Dreiecken zu 10 Dreiecken sehen, sind Vereinfachungen der Geometrie von weit über 90% keine Seltenheit...
4.Für die Entfernung, bei der auf die nächste Qualitätsstufe umgeschaltet werden soll, gilt der einfache und immer geltende Satz: Je näher, desto besser! Selbstverständlich gilt dieser Satz in erster Linie für die Berechnungsgeschwindigkeit der Modelle, also die Performance des Programms EEP. Was die Darstellungsqualität der Modelle angeht, gilt: Seien Sie bitte kompromissbereit...
5.Bei der Bestimmung der Entfernung, in der auf die nächste Qualitätsstufe umgeschaltet wird, sollten einige Maße berücksichtigt werden, die direkt aus den EEP-Standards oder aber aus der durchschnittlichen Bestückung der EEP-Anlagen resultieren. Hierzu zählen insbesondere die Standard-Längen von Fahrwegmodulen, als auch der Abstand der gekoppelten Kamera zu den Rollmaterialien.
Beispiel 1.:
Werden Masten für die Oberleitung der elektrifizierten Gleise oder Straßenlaternen am Rande der Fahrwege mit der Spline-Einrast-Funktion platziert, so ist dabei zu beachten, dass die Standard-Länge eines :neu verlegten ::Fahrweges in EEP immer bei 60m liegt. Wenn wir davon ausgehen, dass dieses Maß beim Aufbau der Gleisanlagen weitgehend beibehalten wird, so macht es wenig Sinn auf das nächste LOD bei 150 m umzuschalten, wenn ::das dritte ::Fahrwegmodul erst bei (3 x 60) = 180 m anfängt. Hierbei erscheint es sinnvoller eine Entfernung von > 180 m zu wählen.
Beispiel 2.:
Die Kameraperspektiven, welche in EEP an ein Rollmaterial gekoppelt sind und mit den Tasten [1], [2], [3], [4], [5], [6], [7] aufgerufen werden, weisen einen Standard-Abstand von 150 m zum Rollmaterial. Dieser Abstand kann ::zwar mit dem Mausrad variiert werden, aber größer als 150 m wird er nicht. Diesbezüglich sollte unbedingt geprüft werden, ob nicht die Inneneinrichtung von Rollmaterialien ab einer Entfernung von über 150 m komplett ::weggelassen werden kann. Möglicherweise können an Stelle der polygonlastigen Inneneinrichtung ganz einfache Attrappen oder gar Textur-Streifen platziert werden, welche die Inneneinrichtung ersetzen.
Beispiel 3.:
Ein ähnliches Distanz-Kriterium, das direkt aus dem "Popping" resultiert, ist bei den Landschaftselementen zu berücksichtigen. Wird eine Serie von Baum-Modellen erstellt, die sich vielleicht in ihrer ::Art, Farbe und ::Verästelung unterscheiden, so sollte für jedes Modell jeweils eine andere Entfernung für die Umschaltung der LODs gewählt werden, um einen möglichen Domino-Effekt zu kaschieren. Würden alle Modelle die ::gleiche Entfernung für ::die Umschaltung aufweisen, würde sich vor dem mobilen Betrachter eine eindeutig erkennbare Umschalt-Welle der LODs ausbreiten. Variiert man die Entfernungswerte von Modell zu Modell ein wenig z.B. ::130 m, 140 m, 160 m, 170 m ::so ist das (in jedem Fall auftretende) Popping kaum, oder gar nicht festzustellen, weil die LODs in unterschiedlichen Abständen angesprochen werden.
6.Bei kleinen Modellen (unter einem Kubikmeter Volumen) sollte grundsätzlich erwogen werden, ob der letzte LOD überhaupt noch eine Geometrie besitzen muss. Es gibt viele Beispiele für relativ kleine Modelle wie Hunde, ::Katzen, Hühner, aber auch andere "tote Materie" wie Eimer, Schüsseln, Pakete, Koffer usw., die ab der mittleren Entfernung von sagen wir 750 m gar nicht mehr als solche wahrgenommen werden. In diesen Fällen sollte zumindest getestet werden,ob das letzte LOD-Objekt zwar erstellt, aber einfach leer, also ohne jegliche darin befindliche Geometrie belassen werden kann. Damit werden die Objekte im Nah- und im mittleren Bereich zwar dargestellt, ::aber in der Ferne (noch deutlich vor der hinteren Clippingebene) nicht mehr berechnet werden müssen. Anzumerken dabei ist, dass die normale Sichtweite in EEP auf 1500 m eingeschränkt ist. Bei der Nutzung der Programmoption ::"Verdoppelung der Sichtweite" endet der einsehbare Bereich nach 3000 m. Nun stellt sich die Frage, ob Sie in EEP einen Hund oder eine Katze (oder jeden anderen, kleinen Gegenstand) aus der Entfernung von 1 km überhaupt noch ::wahrnehmen können?
7.Die von EEP oder Home-Nostruktor automatisch gesteuerten Flare-Objekte dürfen ausschließlich auf das Hauptmodell (also auf den LOD0) angewendet werden. Alle Parameter der Flare-Objekte aus dem Hauptmodell werden dann ::automatisch auf alle Vereinfachungen, also weitere LODs übertragen, so dass man bei den LODs 1 - 4 keine weiteren, etwa nur für den LOD1 geltenden Flares zu definieren braucht. Lichtkegel, die an sich starr mit dem Modell ::verbunden sind und keine spezielle Steuerung seitens EEP erfordern, sollten dagegen auch bei den LODs aufgebaut werden, wenn auch mit viel einfacherer Geometrie.

Da Sie jetzt über die Zielsetzung und die Richtlinien der LOD-Technik Bescheid wissen, folgt nun eine praktische Übung in Form eines Tutorials Tutorial LOD-Funktion. Die dabei verwendeten, geometrischen Figuren wurden für die Transparenz der Übung absichtlich sehr einfach gehalten, was aber am grundlegenden Funktionsprinzip der LOD-Technik auch bei sehr komplexen Modellen, wie z.B. den Dampflokomotiven absolut nichts ändert.

Fussspuren.gif


Zurück zur Startseite