Levels of Details

Aus EEP Wiki
Wechseln zu: Navigation, Suche

"Back to the Future - Reloaded"


Vorwort:


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 kennenlernen 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.












Zurück zur Startseite