Under the Hood: Neues Beleuchtungssystem
Die Änderungen, die wir mit dem 1.40-Update für American Truck Simulator und Euro Truck Simulator 2 einführen, sind in den derzeit noch laufenden Open Beta-Builds bereits seit einiger Zeit für die Öffentlichkeit sichtbar. Die mit Abstand sichtbarste Veränderung ist das neue Beleuchtungssystem, das sich für uns als die größte grafische Überarbeitung seit Jahren herausgestellt hat. Im heutigen Blogbeitrag möchten wir mehr darüber verraten, was wir alles erlebt haben, um diese Änderung bewirken zu können. Werfen wir noch einmal einen Blick unter die Haube – also „Under The Hood“.
Es werde Licht!
Der Ansatz unserer
3D-Engine zur Darstellung von Licht und Farbe in Szenen - und in den
Rendering-Buffers, die am Ende auf dem Bildschirm angezeigt werden -
wurde vor über einem Jahrzehnt etabliert. Es war eine Ära, in der
der Stand der Technik darin bestand, alle RGB-Werte im numerischen
Bereich von 0 bis 255 darzustellen, um in ein Informationsbyte zu
passen. So wurden alle Werte definiert, sei es in einem Texel einer
Texturkarte (der "Skin" (Haut) eines 3D-Objekts, eines
Baums, eines Fahrzeugs oder einer Skybox) oder in der Kodierung der
Intensität einer Lichtquelle (von den Rücklichtern eines Fahrzeugs
bis zu Straßenlaternen oder bis zur Sonnenintensität) und
Kombinieren all dieser Lampen in der Rendering-Phase zu einem Pixel;
Es war wieder die Darstellung im Anzeigepuffer, die auf dem
Bildschirm mit nur 256 Schattierungen jeder Grundfarbe angezeigt
wurde.
In den letzten Jahren führte die Explosion des verfügbaren Speichers in 3D-Beschleunigern, die Fortschritte bei der Rechenleistung und die Flexibilität bei den Schattierungssprachen für die Programmierung der Operationen von 3D-Karten auf Fragmenten zu dem Weg für die Speicherung und Berechnung von Farb- und Lichtwerten mit viel höherer Präzision und Reichweite – und das über Gleitkommazahlen. Anstatt nur Farbfilteroperationen zu überlagern, was im Wesentlichen alle Tricks waren, die wir in der Ära der 8-Bit-Farbkomponenten zur Verfügung hatten, ist die Umstellung auf die Verwendung von reellen Zahlen eine ziemliche Revolution darin, wie eine Spiel-Engine wirklich Lichtquellen darstellen kann in realistischen Bereichen und Verhältnissen. In der realen Welt beträgt der Unterschied zwischen der Intensität einer Glühbirne und dem Sonnenlicht viele Größenordnungen. Wenn wir in der Lage sind, die Intensitätswerte von Lichtquellen richtig zu speichern und vor allem alle Licht- / Oberflächenoperationen in ihren richtigen Wertebereichen ohne großen Präzisionsverlust durchzuführen, können wir einen echten HighDynamic Range Licht in der Grafik-Pipeline (HDR) durchführen. Als wir vor 18 Monaten anfingen, mit der neuen Technik zu experimentieren und die ersten Ergebnisse sahen, gab es für uns keinen Weg zurück, wir wussten, dass wir dies in unserer Engine haben wollten.
Was gibt's Neues?
Wir mussten mit
den Lichtquellen beginnen (und für eine Weile hofften wir, dass dies
ausreichen würde). Jede einzelne Lichtquelle wird jetzt mit einem
realistischen Wert definiert, der aus realen Messungen (wir hatten
dazu eine Tonne Probeaufnahmen mit einem Belichtungsmesser über
verschiedene Tageslicht- und Wettereinstellungen durchgeführt) und
Referenztabellen abgeleitet wurde. Sowohl in der Realität als auch
in der Spielwelt erhellen Zehntausende von Lux-Einheiten momentaner
Tagesszenen - während sich die Umgebungshelligkeit nachts nur mit
wenigen Lux-Einheiten nähert. Wenn wir alle Lichtquellenwerte auf
die Realität stützen, erhalten wir viel mehr Vertrauen dazu ein
neues Licht nur in das System anpassen zu können als früher. Es ist
keine Frage mehr, ob es sich um eine 150 oder 170 handelt, die für
die Werte keine tatsächliche Bedeutung hat. Jetzt wissen wir, dass
wir an einer Tankstelle Flächen für eine Straßenlaterne oder ein
Neonlicht auswählen können. In Lichtberechnungsformeln können wir
jetzt mit der richtigen quadratischen Falldämpfung arbeiten, damit
sich die Lichter physikalisch korrekt verhalten. Mit der höheren
Präzision können wir sogar eine kleine zufällige Variation der
Lichtintensität in ansonsten identische Lichtquellen einführen, um
zu simulieren, dass sich die Nacht einer Straße besser anfühlt,
ohne unnatürlich identische Lampen zu haben.
Wenn alle internen Lichtberechnungen durchgeführt wurden, müssen wir die resultierenden Werte für den Bildschirm anpassen, indem wir die Belichtung der Kamera emulieren. Ähnlich wie bei einer modernen Kamera in Ihrem Mobiltelefon müssen wir alle Werte und die Vielfalt des einfallenden Lichts - Sonne oder Schatten, früher Morgen, später Nachmittag, Abenddämmerung oder tiefe Nacht - erfassen und die Werte "schmälern" oder "erweitern" in den für den Bildschirm geeigneten Bereich. Unser Belichtungsemulationssystem hat einen entscheidenden Einfluss auf das endgültige Erscheinungsbild des Spiels - es geht zum Teil um Physik, zum Teil aber auch um ein subjektives künstlerisches Gefühl. Es muss dynamisch angepasst werden, nicht nur basierend auf dem einfallenden Licht aus der Spielwelt, sondern es muss auch den Unterschied zwischen dem Licht innerhalb und außerhalb der Fahrzeugkabine berücksichtigen, damit Armaturenbrettinstrumente lesbar bleiben. Das menschliche Auge ist eine unglaubliche Kreation, die sich an eine Vielzahl von Lichtintensitäten anpassen kann, wenn der Fokus zwischen Objekten wechselt. Wir mussten bei der Analyse des Lichthistogramms für jedes Bild und zwischen den Bildern viel intelligente Mathematik anwenden, um all diese Werte in den unvermeidlich begrenzten Dynamikbereich und Farbumfang des Bildschirms zu integrieren und alles, was dargestellt wird, glaubwürdig und erkennbar zu machen. Einige Verbesserungen stellten dann die Kirsche auf der Tortenspitze dar, wie die Tatsache, dass wir mit dem internen Bereich von Gleitkommapuffern von Würfelkarten viel glänzendere Reflexionen von glänzenden Oberflächen wie Gewässern, Glas oder Autolack haben können. Wir haben diesen Entwicklungspfad in einem kleinen Team voller Glücksgefühl verfolgen können, bis wir festgestellt haben, dass die intermedialen Ergebnisse zwar vielversprechend waren, wir dies jedoch nicht schaffen können, ohne ALLE vorhandenen Materialien / Texturen auf allen Spielobjekten neu ausgeleichen zu müssen. Wenn ein Lichtstrahl auf die Oberfläche eines Objekts geworfen wird, hängt das, was reflektiert oder gebrochen wird, nicht nur von den Eigenschaften des einfallenden Lichts ab, sondern weitgehend von den Eigenschaften der Oberfläche des Objekts. Im Laufe der langjährigen Entwicklung haben wir Zehntausende von Texturen gesammelt, einige aus fotografischen Quellen in verschiedenen Umgebungen, einige von Hand gemalt, andere durch den Prozess der prozeduralen Generierung mit verschiedenen intelligenten Werkzeugen erzeugt. Im Laufe der Jahre unterlag das Verfassen dieser Quellen verschiedenen Denkrichtungen oder unterschiedlichen Schöpfungspipelines, aber das "alte Lichtsystem" wurde durch das sprichwörtliche Klebeband zusammengehalten und war auf jeden Fall ungenau genug, um bestimmte Ungleichgewichte zu enthüllen, die vorhanden waren. Das neue Belichtungsemulationssystem ist viel empfindlicher und erfordert lediglich physikalisch korrekte Helligkeitsalbedowerte. Unsere Betonoberfläche kann nicht länger grau sein, und ein Baum kann nicht nur schön grün sein. Und zu diesem Zeitpunkt musste eine große Mehrheit unseres Kunstteams für eine umfassende Überholung beteiligt sein.
Was musste geändert werden?
Nachdem
unser kleines bahnbrechendes interdisziplinäres Team alle
erforderlichen Code- und GPU-Shader-Änderungen implementiert hatte,
die viele Monate lang herausexperimentiert wurden, mussten wir viel
mehr Leute mit einbeziehen. Zuerst mussten wir alle Lichtquellen der
Welt und alle Fahrzeuglichter auf die neue Logik einstellen. In
einigen Fällen war es eine relativ triviale numerische Konvertierung
irgendwo in einer Tabelle. In anderen Fällen musste möglicherweise
ein Kartendesigner einen bestimmten Ort immer wieder erneut
aufsuchen, um die Anpassung manuelle vorzunehmen. In vielen Fällen
bedeutete dies, dass ein Spielobjekt wie eine ganze Fabrik oder ein
Lieferhof mit vordefinierten Lichtquellen in einem 3D-Tool wie Maya
erneut geöffnet, angepasst und erneut exportiert werden musste. Wir
sprechen von Tausenden und Abertausenden solcher Retuschen, in
einigen Fällen nicht nur von ein paar Dutzend "Zahlen",
die Lichter definieren, sondern auch von wesentlichen Änderungen an
den Lichtkarten der Objekte, bei denen falsche Schatten und
Lichteffekte für ein besseres Aussehen im alten Lichtsystem
"eingebrannt" wurden. Schließlich musste die Mehrheit
aller unserer Teams einige Wochen lang aufhören, an irgendetwas
anderem im Zusammenhang mit unseren zukünftigen Projekten zu
arbeiten, und alle Spielobjekte, Vegetation, Fahrzeuge und Effekte
durchgehen, immer wieder neu ausbalancieren, um sie auf einer
gemeinsam vereinbarten Albedo-Referenztabelle zu synchronisieren. Wir
mussten die Grundlagen vieler Subsysteme überdenken, insbesondere
die Fahrzeuglichter und -Lampen, die viele Iterationen und
Feinabstimmungen benötigen, damit sie bei verschiedenen
Tageslichteinstellungen gut aussehen. Wir haben einen neuen Satz
Skyboxen mit einer höheren Auflösung und eine etwas reichhaltigere
Wettervielfalt. Letztendlich wurde kein Stein auf dem anderen
gelassen, da wir jedes einzelne Element der Spiele bewerten und
anpassen mussten.
Was bedeutet das alles?
Das neue
Lichtsystem und der Start unseres neuen physischen Lichtmodells sind
ein entscheidender Schritt in Richtung eines vollständigen und
besseren physischen Modells der ganzen Virtuellen Welt unserer
Spiele. Wir sind noch nicht ganz mit echtem physischem Rendering
angekommen, aber das 1.40-Update ist ein wichtiger Schritt in die
richtige Richtung. Die Säuberung der alten Kunst und die Grundlage
aller Lichtintensitäten und Operationen auf der Grundlage der Physik
machen zukünftige systemische Arbeiten in diesem Bereich nun endlich
möglich. Wie bei vielen Dingen in der langfristigen Entwicklung ist
dieser Schritt zwar eine kleine Revolution, aber gleichzeitig nur ein
Meilenstein in Richtung einer größeren Vision.
Aus Sicht der Grafiker (aber dies gilt auch für Mod-Autoren!) Führen wir ein neues Konzept ein, um die gesamte Spielekunst "in Schach" und im Gleichgewicht mit dem Rest der Kunst zu halten. Materialien, die auf Fotos basieren und häufig als Quellen für In-Game-Kunst verwendet werden, müssen jetzt einen Kalibrierungsprozess durchlaufen, bevor sie angewendet werden können. Andernfalls kann es zu einer Oberfläche kommen, die entweder zu dunkel oder zu hell ist, was sich auf die Belichtung und die Beleuchtung und der Wahrnehmung der allgemeinen Szene auswirkt. Oft lohnt es sich, alternative Methoden zur Materialerstellung zu untersuchen, beispielsweise die hochauflösende prozedurale Generierung in Tools wie Substance Designer. Jetzt wird mehr Vertrauen in das Rendering-System der Engine gesetzt. anstatt subtile Schatten und Lichteffekte zu fälschen und in Modelle zu backen. Zwischen New Light und SSAO spielt unser Shader-Code jetzt eine größere Rolle bei der Erstellung des endgültigen Looks. Dies führt zu etwas weniger Verantwortung, Kontrolle und möglicherweise Arbeit des Künstlers. Dies kann sowohl gut als auch schlecht sein, je nachdem, was in jedem Einzelfall erreicht werden soll.
Wie bei jeder größeren Änderung gab es eine Menge Kinderkrankheiten, viele Sackgassen, die behoben werden mussten, und die Anstrengungen, die wir unternommen haben, übertrafen die Erwartungen, die wir vor einem Jahr noch hatten, bei weitem. Wir haben noch ein bisschen Open Beta vor uns, um die letzten Falten auszubügeln. Aber jetzt schon sind wir sehr zuversichtlich, dass die Änderungen die harte Arbeit wert sind. Warten Sie einfach, bis Sie Ihren Truck in den frühen Morgenstunden entlang der Küste Italiens oder an einem schönen späten Nachmittag in Schweden, bei Nieselregen im Bundesstaat Washington, während des sengenden Mittags in Spanien oder an einer gut beleuchteten LKW-Haltestelle bis tief in die Nacht hinein fahren werden. Während des gesamten Änderungsprozesses haben wir unser Bestes gegeben, um die Belastung der CPU oder GPU nicht wesentlich zu erhöhen. Einige der neuen Effekte haben etwas höhere Leistungskosten, aber insgesamt glauben wir, dass die Änderungen sehr ausgewogen sind oder vernünftige Kompromisse bei den Spieloptionen ermöglichen, um die Leistung akzeptabel zu halten. Wir möchten definitiv keine Spieler und Fans verlieren, die unsere Spiele ohne die neueste Hardware spielen, indem wir zu stark auf grafische Effekte drängen. Wir freuen uns darauf, Ihnen weitere Verbesserungen und neue Funktionen zu bieten. Halten Sie also Ihre Lenkräder fest!
Eher ein Fan von Changelogs? Dann schauen wir uns das mal an:
Die wichtigsten internen
Änderungen
Die Szene wird mit realen Intensitäten beleuchtet
(Beleuchtung: Zehntausende Lux tagsüber, Zehntausende Lux
nachts).
Um die Lichtverhältnisse ins Spiel zu bringen - die
aufgehende Sonne überwältigt Straßenlaternen und
Truck-Scheinwerfer usw. Dies bedeutet, dass wir alle Lichtquellen
anpassen und auch jedes emittierende Material im Spiel neu einstellen
mussten.
Wir haben eine neue Display-Mapping-Funktion für eine
bessere künstlerische Kontrolle ( exposure, contrast, toe, shoulder
).
Wir mussten diese realen Intensitäten
auf ähnliche Weise auf den Computerbildschirm bringen, wie die
Belichtung einer Kamera funktioniert.
Verbessertes und
empfindlicheres Histogramm für die Belichtungsauswahl
Dies liegt
daran, dass die tatsächliche Belichtung in jeder Szene
unterschiedlich ausgewählt wird, und dies variiert auch mit
unterschiedlichen Lichtstärken und dem aktuellen Wettertyp.
Die
Lichtquelle (street lamps, vehicle lights) ändert sich.
Wir haben
Lichtquellen auf eine physikalischere Dämpfung umgestellt ('inverse
square falloff').
Wir sind dabei, auf eine Konfiguration auf der
Basis physischer Einheiten umzusteigen, um das Rätselraten zu
reduzieren.
Aber auch viele kleinere visuelle
Verbesserungen.
Zuverlässige Reflexion.
Reflexionen in
Schaufenstern und glatten Oberflächen passen besser zu Tageszeit und
Wetter
Verbessertes Reflexionsverhalten.
Auf
Truck-Lackierungen, Schaufenstern und Glas im
Allgemeinen.
Sonnenhorizont Schatten.
Sichtbar, wenn die Sonne
aufgeht oder untergeht
Und zig andere kleine Verbesserungen, Korrekturen und Änderungen.
Wie Sie sich inzwischen vorstellen können, war dies für unser Team eine enorme Arbeit. Der anfängliche helle Funke (Wortspiel beabsichtigt), der dies alles ermöglichte, kam von einem kleinen Team von Programmierern und einem Künstler für visuelle Effekte (siehe Abbildung unten). Sie haben weiter gehackt, iteriert und Pläne entworfen, bis das gesamte Team es "leicht" hatte, und alles, was zu tun blieb, war, viele Jahre zusätzlicher Arbeitsstunden zu investieren, um alles an die neue Logik anzupassen.
Das neue Lichtsystem wird ebenso wie die Implementierung der FMOD-Unterstützung für den SFX-Teil unserer Spiele weiterentwickelt, poliert und optimiert. Und es liegt noch viel Arbeit vor uns. Zu diesem Zeitpunkt haben wir das Gefühl, dass es bereits mehr oder weniger in einer vorzeigbaren Form ist, und Sie können es auch erleben, wenn Sie sich entscheiden, es jetzt in einer offenen Beta-Version auf Steam auszuprobieren.
Also bitte, wenn Sie uns helfen möchten - setzen Sie Ihre Lieblingssonnenbrille auf und helfen Sie uns, den perfekten Sonnenaufgang einzufangen! Wir freuen uns darauf, Ihre Gedanken und Meinungen zum neuen Lichtsystem zu lesen. Vielen Dank!
Beitrag von Alex. Übersetzung von Angelwingking
Keine Kommentare:
Kommentar veröffentlichen
Diese Seite ist eine Fanseite für Deutschsprachige, die ETS2 & ATS haben und sich gerne Informieren möchten. Wir sind nicht von SCS, aber für SCS. Happy Trucking.
Bitte immer höflich bleiben, keine Beleidigungen oder Beschimpfungen. Fragen werden beantwortet, sobald es geht. Nehmen Sie Rücksicht auf User, die sich nicht sehr gut ausdrücken können, oder noch sehr wenig Ahnung von SCS und ihren Simulations-Spielen haben. Danke.