Sonntag, 14. März 2021

SCS - Under the Hood: Neues Beleuchtungssystem

Under the Hood: Neues Beleuchtungssystem

Sonntag, 14. März 2021 
 

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.