Sonntag, 29. Dezember 2019

Black Dragon Viewer Guide: Teil 1 bis 3

Quelle: Black Dragon Viewer
NiranV Dean hat am 23. Dezember in sechs kleinen Blogposts die wichtigsten Grafikfunktionen seines Black Dragon Viewers erklärt. Ich vermute, das ist für ein zukünftiges Handbuch, das er in seinem Blog zur Verfügung stellen will.

Da ich auch öfter mal inworld gefragt werde, wie dies oder das im Black Dragon funktioniert, übersetze ich die sechs Kapitel von Niran einfach mal. Allerdings in zwei Blöcken. Heute gibt es Teil 1 bis 3, morgen dann Teil 4 bis 6. Die Abschnitte sind nicht besonders umfangreich und erklären im Wesentlichen die Funktion und Auswirkungen bestimmter Grafikeinstellungen. Die richtige Einstellung sollte dann jeder für sich finden, abhängig von der jeweilige Situation.

Ob Niran noch weitere Kapitel erstellen wird, weiß ich nicht. Nach dem ersten Abschnitt folgt in meinem Beitrag ein Link auf die Unterseite.


Black Dragon Viewer Guide: #1 Deferred Rendering

Was ist das?
Deferred Rendering (auch in Second Life fälschlicherweise als "Erweitertes Beleuchtungsmodell" bekannt) und korrekt bezeichnet als "Deferred Shading", ist eine häufig verwendete Rendertechnik, bei der das tatsächliche Schattieren auf die zweite Berechnung von Vertex- und Pixelshadern verschoben wird, während die erste Berechnung nur verwendet wird, um relevante Informationen zu sammeln, die im zweiten Durchgang zur Berechnung von Licht und Schatten herangezogen werden.

Der größte Vorteil besteht darin, dass die Beleuchtung von der Geometrieberechnung abgekoppelt wird, wodurch zum Beispiel viele Lichter gerendert werden können, ohne dass sich dies auf die Leistung im Vergleich zum normalen Rendering auswirkt. Im Allgemeinen sollte das Deferred Rendering immer aktiviert sein. Das sollte im Grunde die Leistung verbessern. Bei der Deaktivierung des Deferred Rendering wird die Leistung der meisten modernen Hardware tatsächlich negativ beeinträchtigt. Das Deferred Rendering ist auch die Grundlage für andere erweiterte Rendering-Funktionen wie Umgebungsverdeckung, Schärfentiefe und gerenderte Schatten.

Wie sieht es aus?


Die weiße Linie mit der Maus bewegen. Links ist ohne, rechts mit Deferred Rendering

Der Unterschied, abgesehen von einem insgesamt helleren Bild, liegt hier in den Details. Die Wände im Bild oben, haben Normal- und Specular-Maps. Wenn die Option "Deferred Rendering" aktiviert ist, werden sie sichtbar. Man kann auch die metallische Reflexion etwas besser sehen, da sie nun korrekt das Licht reflektiert. Denkt daran, dass dies ohne Schatten dargestellt ist und es sollte auch kein direktes Sonnenlicht darauf fallen. Insgesamt ist es eine leichte Verbesserung gegenüber dem Legacy-Rendering und nur die Grundlage für alle anderen Funktionen.

Wie kann ich es anwenden?
Ihr könnt Deferred Rendering aktivieren, indem ihr "Einstellungen" öffnet und die Registerkarte "Anzeige" auswählt. Hier findet ihr ein Kontrollkästchen in einer der Hauptregisterkarten mit der Bezeichnung "Deferred Shading (Deferred Rendering)".


Was kann ich ändern?
Wenn keine zusätzlichen Funktionen aktiviert sind, bleibt "Deferred" weitgehend statisch. Ihr findet alle Optionen im Abschnitt "Deferred Shading (Deferred Rendering)" unter "Anzeige". Dazu gehören Kantenglättung, eine Reihe von Lichtoptionen und die Frage, ob das Licht geglättet werden soll oder nicht.

Warnungen
Beim Deferred Rendering wird etwas mehr Texturspeicher benötigt, zusätzlich zu der möglicherweise bereits sehr begrenzten Menge, die ihr nur noch habt. Beachtet dies bitte.

Quelle: Black Dragon Viewer Guide: #1 Deferred Rendering


Die nächsten zwei Abschnitte sind auf der Unterseite zu finden. Bitte den nachfolgenden Link benutzen:


Black Dragon Viewer Guide: #2 Umgebungsverdeckung (SSAO)

Was ist das?
Umgebungsverdeckung (oder in SL allgemein als Ambient Occlusion bezeichnet, eine Kombination mehrerer Funktionen) ist eine der häufigsten und grundlegendsten erweiterten Shader-Funktionen, die verwendet werden, um eine realistischere Szene zu erzeugen. Umgebungsverdeckung wird verwendet, um einer Szene mehr Tiefe und einen imitierten "Sekundärschatten" auf einfache Weise hinzuzufügen. Oder einfach, um die Umgebungsverdeckung einer Szene zu berechnen.

Wie sieht es aus?


Die weiße Linie mit der Maus bewegen. Links oben ist ohne, rechts mit Umgebungsverdeckung.
Unten sind beide Seiten mit Umgebungsverdeckung, links mit und rechts ohne weiches Licht.



Beachtet die Abdunkelung um Objekte, die andere Objekte berühren. Es ist ein bisschen schwer zu sehen, da diese Gebäudeteile Ambient Occlusion bereits teilweise in ihre Texturen eingebrannt haben, aber man kann deutlich sehen, dass besonders die kurvigen Wände im Hintergrund etwas mehr Tiefe bekommen und mit SSAO kurvig aussehen, anstatt wie eine flache, verzerrte Wand. Der Übergang zwischen dem vorderen Fachwerk und der Wand ist ebenfalls nicht mehr so hart und ihre Form ist etwas stärker definiert, ihre metallische Oberfläche ist besser schattiert und vermittelt eine bessere Tiefe.

Die meisten Leute würden es als "Es sieht weniger schwebend aus" bezeichnen, da Objekte eher in die Szene integriert sind als wie abstrakte, schwebende Objekte auszusehen, die aufgemalt wurden. Ohne Schatten ist dieser Effekt natürlich nicht vollständig. Er sieht mit Schatten noch ein bisschen besser aus.

Wie kann ich es anwenden?
Ihr könnt Umgebungsverdeckung aktivieren, indem ihr die "Einstellungen" öffnet und die Registerkarte "Anzeige" auswählt. Hier findet ihr die Registerkarte "Umgebungsverdeckung (SSAO)" und die entsprechenden Optionen.


Was kann ich ändern?
Umgebungsverdeckung bietet nur wenige, aber sehr wichtige Optionen. Man kann die Unschärfengröße (Blur Size), die Stärke/Dunkelheit/Helligkeit (Stärke), den Radius (Größe), den maximalen Radius (Max. Größe) und den Entfernungseinschluss (Faktor) ändern. Zusätzlich zu diesen Optionen reagiert Umgebungsverdeckung auch auf die Deferred Rendering Option "Weiche Beleuchtung", die im Abschnitt "Deferred Rendering" zu finden ist. Sie steuert, ob Licht (und damit SSAO) gemildert werden soll oder nicht.

Warnungen
Umgebungsverdeckung wird, wie der Name schon sagt, nur im sichtbaren Bildschirmausschnitt verwendet. Objekte außerhalb eurer Ansicht werden nicht berücksichtigt und daher nicht ordnungsgemäß berechnet, wenn sie teilweise in euren Bildschirm hineinragen. Das bedeutet, dass SSAO am Rand eures Bildschirms nicht korrekt funktioniert. Das ist eine Einschränkung von SSAO als Ergebnis einer sehr ressourcenschonenden Funktion.

Umgebungsverdeckung skaliert nicht mit der Auflösung. Dies bedeutet, wenn ihr Fotos mit höherer oder niedrigerer Auflösung als in eurem aktuellen Fenster aufnehmt, dann müsst ihr Umgebungsverdeckung für diese Auflösungen neu konfigurieren. Umgebungsverdeckung teilt dieses seltsame Verhalten mit "Weicher Beleuchtung", "Bildschirmreflexionen", "Tiefenunschärfe" und "Volumetrische Beleuchtung". Beachtet dies bitte.

Quelle: Black Dragon Viewer Guide: #2 Screen Space Ambient Occlusion


Black Dragon Viewer Guide: #3 Schatten

Was ist das?
Schatten sind das Brot und die Butter von Deferred Rendering und dem Black Dragon. Schatten verändern die Umgebung, die Stimmung und die Szene völlig. Schatten zu haben ist der Unterschied zwischen Tag und Nacht. Sowohl Sonne als auch Mond sind ein globales Licht und zusätzlich können Projektoren auch als Lichtquellen verwendet werden, die Schatten werfen.

Wie sieht es aus?


Die weiße Linie mit der Maus bewegen. Oben links ist ohne, rechts mit Schatten.
Unten links ist Schatten mit, unten rechts ohne Umgebungsverdeckung.


Unten links ist Schatten mit, unten rechts ohne Umgebungsverdeckung und weiche Beleuchtung.



Wie man sehen kann, machen Schatten einen großen Unterschied. Sie verwandeln die gesamte Szene von einem hell erleuchteten Platz im Freien in ein ordnungsgemäß geschlossenes Gebäude mit einem Dach darüber. In Kombination mit SSAO sind sie die größte visuelle Verbesserung, die man in jedem Viewer aktivieren kann.

Wie kann ich es verwenden?
Ihr könnt Schatten aktivieren, indem ihr "Einstellungen" öffnet und die Registerkarte "Anzeige" auswählt. Hier navigiert zum Abschnitt "Deferred Rendering", in dem auch der Bereich "Schatten" zu finden ist. Die Optionen sind "Keine", "Sonne" (und Mond) oder "Projektoren" (zusätzlich zu Sonne und Mond).


Was kann ich ändern?
Ihr könnt ändern, ob ihr nur Schatten von Sonne und Mond sehen wollt oder auch die von Projektoren einbeziehen möchtet. Außerdem könnt ihr steuern, wie viel Schatten auf den Boden fallen soll und welche Auflösung jeder der 4 Distanzabschnitte hat. Beachtet, dass sich eine Änderung der Distanz eines Abschnitts negativ auf die Genauigkeit auswirken kann. Mehr Bodenschatten bedeutet weniger Genauigkeit. Ihr solltet die ersten beiden Abschnitte sehr klein halten. Außerdem kann die Auflösung der einzelnen Projektorschatten geändert werden. Schatten sind auch von der "Weichen Beleuchtung" betroffen, da Schatten ohne Weichzeichnung keine Unschärfe aufweisen und pixelig erscheinen.

Warnungen
Die Schattenauflösung hat einen enormen Einfluss auf die Leistung des Viewers und auch auf die Komplexität der Szene. Je komplexer eine Szene ist, desto höher ist der Einfluss von Schatten auf eure Bildwiederholrate. Dies wird durch die Schattenauflösung noch verstärkt. Schatten erscheinen auch immer pixelig, wenn sie von einem halbtransparenten Objekt oder einer halbtransparenten Oberfläche geworfen werden oder auf so eine fallen. Daran kann nichts geändert werden. Es handelt sich um eine Rendering-Einschränkung für die Implementierung von Alphatexturen und Lichtunschärfe.

Projektoren wirken sich massiv auf die Leistung aus, wenn sie falsch verwendet werden.

Die Schattendistanz ist entscheidend für Schatten. Wenn ihr sie schlecht konfiguriert, werdet ihr eure Schatten komplett zerstören. Wenn ihr keine guten Entfernungen ermitteln könnt, wählt die Option "Automatische Schattendistanz". Sie bietet jedoch weitaus weniger Optionen, aber macht was man erwartet, wenn man es selbst nicht besser hinbekommt.

Quelle: Black Dragon Viewer Guide: #3 Shadows


Update:

3 Kommentare:

  1. Sehr gut.

    Allerdings gibt es ein paar Kleinigkeiten.

    Bei der Warnung von Umgebungsverdeckung wäre es bestimmt besser das ganze "Bildschirmumgebungsverdeckung" zu taufen da es dann einheitlich mit "Bildschirmreflektionen" wäre und außerdem der Warnung etwas mehr Sinn gibt.

    Der letzte Abschnitt bei den Schattenwarnungen wirkt etwas roh, ein Vorschlag wäre:

    Die Schattendistanz ist entscheidend für Schatten. Wenn ihr sie schlecht konfiguriert, werdet ihr eure Schatten komplett zerstören. Wenn ihr keine guten Entfernungen ermitteln könnt, wählt die Option "Automatische Schattendistanz". Sie bietet jedoch weitaus weniger Optionen, aber macht was man erwartet, wenn man es selbst nicht besser hinbekommt.

    Make-or-break lässt sich so nicht direkt übersetzen, deshalb würde man für gewöhnlich das ganze umschreiben.

    Außerdem ist der Abschnitt "Was kann ich ändern?" Etwas missglückt, du beschreibst hier die Schattendistanz, die du später auch explizit so beschrieben hast als "mehr Schatten" bzw viel Schatten, dabei geht es hier nicht um mehr oder weniger Schatten, welches den Eindruck erwecken könnte man könne wirklich die "menge" einstellen, sondern hier geht es lediglich um die Distanz (Reichweite) die die Schatten abdecken. Ich hab nochmal nachgeschaut ob ich das vielleicht einfach schlecht beschrieben habe im Originaltext aber auch dort wird explizit die Distanz angesprochen.

    Ansonsten sehr guter Post. Das sollte hoffentlich einigen Leuten helfen, vielen dank dafür, die sollte ich dann wenn ich das "Guidebook" fertig hab auch verlinken als alternative. Jetzt schau ich mir erstmal Teil 2 an.

    AntwortenLöschen
    Antworten
    1. Okay, den Abschnitt mit der Schattendistanz Warnung habe ich von dir in den Beitrag übernommen. Was den anderen Abschnitt angeht: Stelle ich bei der weiten und fernen Schattendistanz einen zu kleinen Wert ein, sehe ich den Schatten schlicht nicht mehr auf dem Bildschirm. In diesem Sinne kann ich mit dem Ändern der Werte schon die Menge bestimmen, die ich an Schatten sehe. Halt eben auf die Distanz bezogen.

      Solltest du die deutsche Übersetzung der UI das nächste Mal ändern, dann noch zwei Korrekturvorschläge von mir. "Reflektionen" gibt es nicht. Es heißt immer "Reflexionen", auch bei Wortkombinationen wie "Bildschirmreflexionen". Und du benutzt in der UI oft das Wort "Standart". Bitte ändere das in "Standard" (mit "d"). Da müsstest du allerdings einen Suchlauf durch alle UI XML-Dateien machen, da ich dieses Wort an vielen Stellen der UI antreffe.

      Löschen
    2. Ja die alte angewohnheit "Standart" von Standarte was etwas völlig anderes ist als der Standard.

      Die Sache mit Reflexion ist etwas das ich mir wohl niemals angewöhnen werde... Reflexion ist wieder ein super Beispiel wo die Deutsche Rechtschreibung unnötig kompliziert ist und auch noch völlig undurchdacht. Wir haben das Wort reflektieren welches mit "k" geschrieben wird und dennoch wird Reflexion mit x geschrieben, laut Wiki und Duden gibt es eine kleine Handvoll solcher seltsamen Wörter die das tun aber alles in allem ist das eine gigantisch dumme Lösung. Sowohl Reflektion als auch Reflexion sollte korrekt sein da es wie im Duden auch erklärt nahe liegt das eine "Reflektion", richtig, reflektiert. Aber in der neuen, neuen Deutschen Rechtschreibung wird bei dem ganzen Genderwahn wohl kein Platz sein um sich um sowas mal Gedanken zu machen und an Stellen anzusetzen wo es wirklich nötig wäre.

      Dennoch Danke für die Berichtigung, wenn ich das nächste mal durch die Deutsche Übersetzung wühle schau ich mir das mal an.

      Löschen