Rendern in radiometrischen Einheiten oder photometrischen?

10

Beim herkömmlichen Rendering werden normalerweise alle Berechnungen mit radiometrischen Einheiten durchgeführt, entweder als vollständiges spektrales Rendering oder komponentenweise (XYZ, RGB usw.).

Da das moderne Rendering jedoch mehr physikalisch basierte Modelle hinzufügt, ist es für Künstler praktisch, Werte in den bekannteren photometrischen Einheiten anzugeben, z. B. die Intensität eines Lichts in Lumen.

Geben Sie hier die Bildbeschreibung ein

Um die Pipeline in einem Einheitentyp zu halten, können Sie einen der folgenden Schritte ausführen:

  1. Konvertieren Sie photometrische Einheiten in radiometrische Einheiten unter Verwendung der Lichtausbeute
  2. Halten Sie die gesamte Render-Pipeline in photometrischen Einheiten
    • Sébastian Lagarde präsentiert diese Idee sehr gut in den Kursnotizen seiner Siggraph 2014-Präsentation Moving Frostbite to PBR

Meine Fragen sind dann diese:

  1. Gibt es Nachteile beim Rendern ausschließlich in photometrischen Einheiten?
    • Soweit ich das beurteilen kann, sind photometrische Einheiten nur radiometrische Einheiten, die auf das menschliche Auge ausgerichtet sind. In Anbetracht dessen, dass wir das endgültige Bild mit unserem Auge betrachten werden, sehe ich dies nicht als Problem.
  2. Frostbite ist eine komponentenbezogene RGB-Engine. Hätte ein Spektralrenderer zusätzliche Nachteile, wenn er ausschließlich in photometrischen Einheiten gerendert würde?
RichieSams
quelle

Antworten:

9

Es ist in Ordnung, photometrische Einheiten als Gesamtskala zum Einstellen der Lichthelligkeit zu verwenden. Es gibt jedoch eine technische Subtilität, die Sie beachten sollten. Ich zitiere aus einem Blog-Beitrag, den ich letztes Jahr zu diesem Thema geschrieben habe :

Bei RGB-Bildern ist es wichtig zu erkennen, dass sich unsere Anzeigegeräte eher radiometrisch als photometrisch verhalten. Ein roter Pixelwert von 255 und ein grüner Pixelwert von 255 führen beide dazu, dass von einem Pixel auf einem Bildschirm ungefähr gleiche Mengen an Strahlungsfluss (Watt) erzeugt werden - nicht gleiche Mengen an Lichtstrom. Aus dem gleichen Grund erfassen Digitalkameras Pixelwerte, die dem Strahlungsfluss und nicht dem Lichtstrom entsprechen.

Aus diesem Grund müssen wir Luma-Koeffizienten verwenden, wenn wir Bilder in Graustufen konvertieren oder die Helligkeit eines Pixels berechnen, um ein wahrnehmungsgenaues Ergebnis zu erzielen. und es bedeutet auch, dass das Rendern von RGB-Bildern in radiometrischen Einheiten natürlicher verläuft als in photometrischen.

Mit anderen Worten, die Wellenlängenabhängigkeit von photometrischen Einheiten unterscheidet sich von dem, was Sie vielleicht erwarten. In gewöhnlichen RGB-Farbräumen ist Weiß (1, 1, 1) und hat ein ungefähr flaches radiometrisches Spektrum; aber in einem vermeintlichen "photometrischen RGB" wäre (1, 1, 1) nicht weiß; Es wäre eine violette Farbe mit weniger Energie im grünen Bereich und mehr im roten und blauen Bereich. Ein ähnliches Problem würde spektrale Renderer betreffen, die versuchen, alle ihre Bins in wellenlängenabhängigen photometrischen Einheiten zu messen, aber noch schlimmer, da die zur Erzeugung einer bestimmten Luminanz erforderliche Strahlung zu beiden Enden des sichtbaren Spektrums divergiert , wo die Funktion der menschlichen Lichteffizienz liegt Null.

Wenn Sie also photometrische Einheiten verwenden möchten, ist es IMO besser, ein wenig zu "schummeln" und keine echten wellenlängenabhängigen photometrischen Einheiten zu verwenden, sondern nur eine feste Wellenlänge (z. B. 555 nm grün, die Spitze des menschlichen Lichts) Effizienzfunktion) oder vielleicht ein Durchschnitt über das Spektrum als Referenzeinheit und wenden diese einzelne Einheit an, um alle Wellenlängen zu messen. Dadurch haben Sie weniger Probleme beim Importieren von RGB-Farben und -Spektren aus anderen Quellen und beim Generieren als Ausgaben.

Nathan Reed
quelle