🖼️ HDR-Tonemapping-Operatoren
High-Dynamic-Range-Bilder benötigen Tonemapping, um auf LDR-Bildschirmen dargestellt zu werden. Vergleiche Reinhard-, Filmic-ACES-, Drago- und Durand-Operatoren. Sieh dir Gamma, Belichtung und lokale Kontrastanpassung an.
Funktionsweise
HDR-Tonemapping komprimiert den weiten Leuchtdichtebereich einer Szene in den engen Bereich, den ein Display darstellen kann. Der Simulator erzeugt synthetische HDR-Strahlungskarten für vier Szenentypen und wendet dann den ausgewählten Operator in Echtzeit an.
Jedes Pixel hat einen linearen HDR-Leuchtdichtewert L. Der Operator bildet L → L' in [0,1] ab, das dann für die Anzeige gammakodiert wird. Belichtung (EV) verschiebt die Eingabe vor der Zuordnung um 2^EV.
Häufig gestellte Fragen
Was ist HDR-Tonemapping?
HDR-Tonemapping wandelt ein High-Dynamic-Range-Bild (Leuchtdichteverhältnisse bis zu 100.000:1) in ein Low-Dynamic-Range-Bild um, das für Standardmonitore geeignet ist (typischerweise 100:1 Kontrastverhältnis), wobei die wahrnehmbaren Details über den gesamten Bereich erhalten bleiben.
Was ist der Reinhard-Tonemapping-Operator?
Der Reinhard-Operator bildet die Leuchtdichte L auf L/(1+L) ab, ein einfacher globaler Operator, der Lichter komprimiert und dabei Schattendetails erhält. Er ist mathematisch elegant, kann aber in stark gesättigten Szenen zu leicht entsättigten Ergebnissen führen.
Was macht ACES-Filmic-Tonemapping besonders?
ACES (Academy Color Encoding System) Filmic verwendet eine S-Kurve, die die Reaktion fotografischen Films nachbildet. Es beschneidet helle Lichter auf natürliche Weise und erhält die Farbsättigung besser als einfaches Reinhard-Mapping, weshalb es in Spiele-Engines beliebt ist.
Was ist der Drago-Tonemapping-Operator?
Der Drago-Operator verwendet logarithmische Kompression mit einem adaptiven Bias-Parameter. Er ist besonders effektiv für Szenen mit sehr hohem Dynamikumfang und erzeugt natürlich wirkende Ergebnisse für Außenaufnahmen.
Wie hängt die Gammakorrektur mit Tonemapping zusammen?
Die Gammakorrektur (typischerweise Gamma 2,2) wandelt lineare Lichtwerte in wahrnehmungsmäßig gleichmäßige Anzeigewerte um. Tonemapping-Operatoren arbeiten im linearen Lichtraum, und Gamma wird als letzter Schritt vor der Anzeige angewendet.
Was ist Belichtung beim Tonemapping?
Belichtung beim Tonemapping ist ein Multiplikator, der auf das lineare HDR-Bild vor der Tonkurve angewendet wird. Eine Erhöhung der Belichtung hellt das Bild insgesamt auf, ähnlich einer längeren Verschlusszeit in der Fotografie, ausgedrückt in EV-Stufen (Belichtungswert).
Was ist lokales im Vergleich zu globalem Tonemapping?
Globales Tonemapping wendet dieselbe Kurve unabhängig auf jedes Pixel an. Lokales Tonemapping (wie Durand) analysiert räumliche Nachbarschaften, um den lokalen Kontrast zu verstärken, und offenbart so gleichzeitig Details in Schatten und Lichtern.
Was ist der Durand-Tonemapping-Operator?
Der Durand-Bilateral-Tonemapping-Operator zerlegt ein Bild mithilfe eines bilateralen Filters in eine großräumige Basisebene und eine Detailebene. Die Basis wird komprimiert, während die Detailebene erhalten bleibt, wodurch der lokale Kontrast verstärkt wird.
Warum wirken HDR-Bilder auf einem Standardmonitor flach?
Standardmonitore stellen etwa 8 Bit pro Kanal (256 Stufen) dar, während HDR-Szenen mehr als 20 Blendenstufen an Licht umfassen können. Ohne Tonemapping geht durch einfaches Begrenzen der Werte auf 0-255 jegliches Lichterdetail verloren, und das Bild wirkt ausgewaschen.
Was ist der Key-Parameter beim Reinhard-Tonemapping?
Der Key-Parameter (oft „a“ genannt, typischerweise 0,18) steuert das gesamte Helligkeitsziel. Reinhard bildet zunächst die logarithmische Durchschnittsleuchtdichte auf diesen Key-Wert ab und wendet dann die L/(1+L)-Kompressionskurve auf das gesamte Bild an.
Über diese Simulation
Dieser Simulator erzeugt eine synthetische HDR-Strahlungskarte — Sonnenuntergangshimmel, beleuchteter Innenraum, Waldkronendach oder Nachtstadt — mit Leuchtdichtewerten, die mehrere Größenordnungen umfassen, und wendet dann in Echtzeit Reinhard, ACES Filmic, Drago oder einen linearen Durchlauf an, sodass du genau sehen kannst, wie jeder Operator diesen Bereich auf ein 8-Bit-Display komprimiert. Schalte die Split-Ansicht ein, um das roh begrenzte Bild neben dem tonemappten Ergebnis zu sehen.
🔬 Was gezeigt wird
Eine prozedural erzeugte HDR-Szene, gerendert durch die gewählte Tonemapping-Kurve, mit Live-Statistiken zu minimaler/maximaler Leuchtdichte, logarithmischer Durchschnittsleuchtdichte und Dynamikumfang, sodass du genau siehst, wie extrem die Eingabe tatsächlich ist.
🎮 Bedienung
Wähle einen Operator (Reinhard, ACES Filmic, Drago Log, Durand Local oder Linear), passe Belichtung (EV) und Gamma an, stelle den Reinhard-Key-Parameter ein und wechsle den Szenentyp zwischen Sonnenuntergang, Innenraum, Wald und Stadt. Drücke ⧉ Split-Ansicht, um Vorher/Nachher zu vergleichen.
💡 Wusstest du schon?
Die Wahl von Linear (keine Zuordnung) bei der Sonnenuntergangsszene zeigt, warum Tonemapping überhaupt existiert: Bei Leuchtdichtewerten in der Sonnenscheibe, die etwa das 1000-fache des Himmels erreichen, führt einfaches Begrenzen auf [0,1] dazu, dass jedes helle Pixel zu reinem Weiß wird und die Schattendetails zu Schwarz zusammenbrechen.
Häufig gestellte Fragen
Warum benötigt die Sonnenuntergangs-Szene einen stärkeren Operator als die Wald-Szene?
buildHDR() gibt der Sonnenscheibe des Sonnenuntergangs eine Leuchtdichtespitze von bis zu etwa 1000 (über Math.exp(-dist²·80)·1000) gegenüber einem Himmel von etwa 8 — ein weit größerer Dynamikumfang als die weicheren Lichter des Waldkronendachs. Die Anzeige „Dynamikumfang“ im Statistikpanel zeigt dies direkt, wenn du den Szenentyp wechselst.
Warum hellt eine Erhöhung von Belichtung (EV) das gesamte Bild auf, bevor die Tonemap-Kurve angewendet wird?
EV verschiebt die lineare HDR-Leuchtdichte um einen Faktor von 2^EV, bevor irgendein Operator angewendet wird — genau wie die Belichtungssteuerung einer Kamera. Das bedeutet, dass eine Erhöhung von EV zuvor mittlere Pixel in den Bereich der Lichterkompression des Operators verschieben kann, wodurch sich ändert, welche Details erhalten bleiben.
Was steuert der Reinhard-Key-Regler eigentlich?
Key legt die Ziel-Mittelgrauhelligkeit fest, auf die die logarithmische Durchschnittsleuchtdichte der Szene abgebildet wird, bevor die L/(1+L)-Kompressionskurve angewendet wird — eine Erhöhung von Key lässt das gesamte gerenderte Bild insgesamt heller wirken, unabhängig von der Form des Lichter-Rolloffs der Kurve.
Warum wirken Farben bei ACES Filmic kräftiger als bei Reinhard in derselben Szene?
Die ACES-Formel L(2,51L+0,03)/(L(2,43L+0,59)+0,14) ist eine S-förmige Kurve, die Lichter sanfter an Zehen- und Schulterbereich komprimiert als Reinhards L/(1+L), weshalb filmartige Operatoren mehr wahrgenommene Sättigung in hellen Bereichen erhalten.
Warum verändert der Wechsel zu Drago die Schatten anders als die Lichter?
Drago's Formel log(1+bL)/log(1+bLmax) komprimiert mithilfe eines Logarithmus, der an der tatsächlichen maximalen Leuchtdichte Lmax der Szene verankert ist, sodass Szenen mit einem sehr hellen Ausreißer (wie der Sonnenscheibe des Sonnenuntergangs) ihren gesamten Lichterbereich stärker zusammengedrückt bekommen, während Mitteltöne und Schatten relativ weniger betroffen sind.
High-Dynamic-Range-Bilder benötigen Tonemapping, um auf LDR-Bildschirmen dargestellt zu werden. Vergleiche Reinhard-, Filmic-ACES-, Drago- und Durand-Operatoren. Sieh dir Gamma, Belichtung und lokale Kontrastanpassung an.
3D · Three.js / WebGL-Renderer · Ziel 60 FPS · läuft vollständig clientseitig, keine Installation nötig