Wie erstellen Sie HDR-Inhalte?

33

Wie machen Sie es Ihren Künstlern einfach, Inhalte für einen HDR-Renderer zu erstellen ? Welche Tools sollten Sie bereitstellen und welche Workflows müssen geändert werden, um von LDR zu HDR zu wechseln?

Beachten Sie, dass ich nicht nach den technischen Aspekten der Implementierung eines HDR-Renderers frage, sondern nach bewährten Methoden zum Erstellen von Materialien und Beleuchtung in HDR. Ich habe ein bisschen gegoogelt, aber es scheint nicht viel über dieses Thema im Web zu sein. Kann mich jemand auf einige gute Quellen hinweisen oder seine eigenen Erfahrungen teilen?

Einige spezifische Punkte:

  • Beleuchtung - Wie können Lichtkünstler HDR-Lichtfarben auswählen? Haben sie einen Standard-LDR-Farbwähler und dann einen Multiplikator? Liegt der Multiplikator im Gamma oder im linearen Raum? Vielleicht ist es anstelle eines Multiplikators eine logarithmische Leuchtdichte? Oder eine physikalische Helligkeitsstufe, wie die Anzahl der Lumen? Woher wissen sie, welcher Multiplikator / Leuchtdichte / Helligkeit für ein bestimmtes Licht "richtig" ist?
  • Materialien - Wie können Texturkünstler emittierende Farbkarten wie Leuchtreklamen, Fernsehbildschirme, Skyboxes usw. erstellen? Können Sie ein Bild als reguläres LDR-Bild (8 Bit pro Kanal) malen und einen Multiplikator (oder eine logarithmische Luminanz usw.) anwenden? Gibt es Fälle, in denen es notwendig ist, HDR-Bilder tatsächlich zu malen? Wenn ja, wie gehen Sie in Photoshop (oder einer anderen Software) vor?
Nathan Reed
quelle
3
Dies könnte hilfreich sein: developer.valvesoftware.com/wiki/HDR_Skybox_Creation
Tetrad
1
@Aralox, ich habe nichts darüber herausgefunden, wie andere Teams / Unternehmen dies tun. Wir haben in meiner Firma an diesem Thema gearbeitet, aber ich kann auch (noch) nichts darüber verraten. Ich hoffe jedoch, dass wir irgendwann über unseren Workflow sprechen können!
Nathan Reed
1
Ich würde gerne sehen, was die Leute über das Erstellen von HDR-Inhalten sagen, ohne Fotoquellen zu verwenden.
1
Denken Sie daran, dass dies eine alte Geschichte ist, aber die Lichter draußen waren buchstäblich nur viel heller eingestellt als die in der Höhle und die Rendering-Engine musste damit umgehen. Die Volumina wurden für die Umgebungs- und Tonsteuerung verwendet. Die Idee war, dass ein Stein nicht selbst zu HDR wird, sondern nur ein Stein, und das Licht, das darauf trifft, macht ihn wirklich hell oder dunkel im Vergleich zu dem, was der Render für eine graue Belichtung hält. Ich bin sicher, Sie haben schon früh eine HDR gesehen, bei der sich die "Belichtung" ständig an die Position des Players anpasst. eine Modeerscheinung der Zeit.
Patrick Hughes
2
Ich habe einen fotografischen Hintergrund, nur einen instinktiven Ruf, dass "draußen" vielleicht 4-5 Blendenstufen heller ist als "drinnen" ein mäßig beleuchteter Höhleneingang.
Patrick Hughes

Antworten:

5

Ich denke, wir sind noch irgendwie in den "Höhlenmenschentagen", beschreibt Patrick Hugues in seinen Kommentaren.

Sie möchten keine Details zu Renderer-Implementierungen, aber lassen Sie mich die Dinge trotzdem ein wenig klarstellen: Sie werden verstehen, warum. Bei HDR in Game Engines geht es hauptsächlich darum, "breitere" Werte für die Renderausgabe (den Framebuffer) zu haben. Normalerweise 16-Bit-Gleitkommazahlen, die über 1,0 hinausgehen können, anstelle von 8-Bit-Ganzzahlen, die nur 256 Werte im Bereich [0,1] ergeben. Diese Ausgabe wird dann mit einem Tone Mapper in LDR konvertiert , damit der Bildschirm sie anzeigen kann. Für mich besteht das eigentliche "HDR-Authoring" darin, diesen Tone-Mapper zu optimieren. Deshalb möchten Sie Ihren Künstlern diesbezüglich so viel Kontrolle wie möglich geben. Es wird eine Art Shader geben, also haben Sie entweder technische Künstler, die damit umgehen können, oder Sie codieren es fest und legen die nützlichsten Parameter offen.

Ich bin mir nicht sicher, ob Sie unbedingt 16-Bit-Lichter benötigen , außer vielleicht, um Lichter zu erzeugen, die "weißer als weiß" sind. Aber wenn Sie möchten, brauchen Sie in jedem Editor, den Sie für Ihre Lichter verwenden, eine Art Farbwähler oder eine Reihe von Schiebereglern, mit denen Sie diese Gleitkommawerte erhalten. Wenn Sie eine grafische Benutzeroberfläche benötigen, beginnen Sie wahrscheinlich nur mit Fließkommawerten in einer Datei.

HDR-Texturen (16 Bit pro Kanal) sind vorhanden, werden jedoch nicht häufig verwendet, vielleicht nur, weil dies so viel mehr Speicherplatz beanspruchen würde als normale LDR-Texturen (8 Bit pro Kanal). Ich vermute auch, dass die Hardware-Einschränkungen bei Konsolen der aktuellen Generation weiter zunehmen, sodass die meisten Big Game-Engines dies nicht allzu sehr forcieren. Zum Beispiel scheint es ein bisschen schwierig zu sein, eine HDR-Textur für die Verwendung mit dem UDK zu importieren . Um 16-Bit-Texturen zu erstellen, benötigen Sie jedoch eine Software, die dies unterstützt, z. B. Photoshop . Es gibt wahrscheinlich andere, aber es scheint nicht so häufig zu sein, zes istes war eine langjährige Anfrage für GIMP das steht noch aus. Sie müssen auch ein 16-Bit-fähiges Bildformat wie PNG verwenden.

Laurent Couvidou
quelle
1
Ich habe gerade überprüft, wie Lichter im UDK bearbeitet werden. Es scheint, dass sie einen klassischen RGB-Farbwähler mit 8-Bit-Farbwerten und einem zusätzlichen "Helligkeits" -Faktor verwenden, der über 1,0 liegen kann und alle drei Farben gleichzeitig skaliert.
Laurent Couvidou
1

Wie Lorancou gesagt hat, verfassen Sie HDR-Inhalte nicht wirklich, da sie sich im Allgemeinen dynamisch auf die Lichtmenge auswirken. Aber Sie könnten es wahrscheinlich in einer Lightmap nachahmen, bei der Sie lediglich alle Vorberechnungs-Shader modifizieren, um dies zu berücksichtigen.

CobaltHex
quelle
1

Nun, drei Jahre später und ich habe gerade einen Blog-Beitrag über das Verfassen von HDR-Inhalten geschrieben , sodass ich jetzt meine eigene Frage beantworten kann. :)

Zusammenfassen,

  • Eine gute Möglichkeit, den großen Bereich der HDR-Helligkeitswerte zu verarbeiten, ist die Verwendung einer logarithmischen Skala. Fotografen haben eine solche Skala, die sie seit Jahrzehnten verwenden, Belichtungswert oder EV genannt.
  • Die Verwendung von EV in Ihrem Motor / Ihren Werkzeugen ist praktisch, da mit dem Spotmeter eines Fotografen gemessene Werte als Referenzdaten für die Einrichtung der Beleuchtung im Spiel verwendet werden können. Photoshop verwendet im 32-Bit-Modus auch EV (obwohl dies nicht so genannt wird).
  • Farbwähler für Lichtquellen, emittierende Materialien usw. können die üblichen LDR-RGB-Komponenten mit einer EV-Komponente kombinieren, die ihre gesamte HDR-Helligkeit skaliert. Dies ist praktisch, um ein versehentliches Ändern der Farbe zu verhindern, wenn Sie nur die Helligkeit ändern möchten, oder umgekehrt.
  • Es ist nicht erforderlich, HDR-Texturen für die üblichen diffusen und spiegelnden Karten zu haben, aber es ist nützlich für emittierende Texturen. BC6-Komprimierung ist hier erforderlich, da BC1-Texturen schreckliche Streifen und Artefakte aufweisen, wenn sie auf eine hohe Helligkeit skaliert werden (z. B. für Neonschilder).
  • Es ist normalerweise nicht erforderlich, emittierende Texturen in Gleitkommazahlen zu zeichnen. Der Photoshop-16-Bit-Modus (der ein fester Punkt ist) reicht wahrscheinlich für emittierende Texturen aus. Der Photoshop-32-Bit-Modus bietet jedoch bei Bedarf eine recht gute Unterstützung für die Gleitkommabearbeitung.
Nathan Reed
quelle