Real-Time High-Dynamic Range Texture Mapping

Ähnliche Dokumente
Die Welt der Shader. Fortgeschrittene Techniken III

Interaktives Wasser in 3D. Jörn Loviscach Hochschule Bremen

die Planung eindrucksvoll präsentieren

Computer Graphics Shader

Kapitel 4: Schattenberechnung

Einführung Augmentierte Bildsynthese

HLSL PostProcess Shaders

Postenlauf Digitalfotografie Lehrerinformation

Rendering: Lighting and Shading

Beleuchtungsmodelle und Shading

Rechnergestütztes Konstruieren im Metallbau und Holzbau. Rechnergestütztes Konstruieren im Metallbau und Holzbau Dr.-Ing. Hans-Walter Haller

Klapptest Lineare Gleichungen I

Beleuchtung. in Computerspielen

Distributed Algorithms. Image and Video Processing

Teil 7: Beleuchtung Beleuchtungsmodelle, Schattierungsmodelle

Prozedurale Texturen >>Was nicht passt wird passend gemacht...<<

Gleichungen, die auf quadratische Gleichungen führen: Teil 1: Bruchgleichungen. Shareware-Datei ohne Lösungen. Datei Nr

computer graphics & visualization

Lokale Beleuchtungsmodelle

Behandlung von hohen Kontrasten

Georg Molzer 1HDD 3D-Grafikkarten GDV-Hardware

BIM Methodik Digitales Planen und Bauen

1 Zu HDR zusammenfügen

PhysX Evaluation. Softwarepraktikum Computergraphik. Daniel Brock, Robert Kreuzer, Simon Kufner. 5. Juli 2010

ALGEBRA Lineare Gleichungen Teil 1. Klasse 8. Datei Nr Friedrich W. Buckel. Dezember 2005 INTERNETBIBLIOTHEK FÜR SCHULMATHEMATIK

Modellierung. Oliver Hartmann

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU

Computergrafik Universität Osnabrück, Henning Wenke,

Script Pause

3D-Grafik-Chips. Informatik-Seminar Michael R. Albertin. Betreuer: E. Glatz

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker

Wima-Praktikum 2: Bildsynthese-Phong

Ambient Occlusion Precomputed Radiance Transfer

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar

2.2 Kollineare und koplanare Vektoren

Programmierpraktikum 3D Computer Grafik

Tutorial: Materialien - Chrom mit Raytracing Stand:

Linear Workflow. Linear Workflow. Version

Rendering. Rendern (Umsetzung oder Übertragung) Ursprüngliche Rendergleichung

3.1 Szene vorbereiten

Seminar Game Development Game Computer Graphics. Einleitung

Rendering Grundlagen Autodesk Maya. Grundlagen. Version Ingo Clemens brave rabbit

Kapital und Zinsen in Tabellen und Prozentstreifen

Jörn Loviscach Hochschule Bremen

1 Zahlentheorie. 1.1 Kongruenzen

Multiplizieren und Dividieren komplexer Zahlen in Polardarstellung

Potenzen mit ganzzahligen Exponenten: Rechenregeln

3D Programmierpraktikum: Schattenberechnung in Echtzeit

Christina Nell. 3D-Computergrafik

Alles rund um das Shooting im Skript

Stereo-Rendering für VR-Brillen und Verlinkung über QR-Code Kurzanleitung

Partialbruchzerlegung

Mathematik I Prüfung für den Übertritt aus der 8. Klasse

Farbchecker. Vorraussetzungen für optimale Farbkorrekturen

RTT DeltaGen Suite. Materialeinstellungen für OpenGL, RTT RealTrace & Global illumination. Copyright 2010 by Realtime Technology AG

Graphische Datenverarbeitung Visualisierungstechniken. Prof. Dr. Elke Hergenröther

Einstieg in die Fotogrammmetrie

Ein Vortrag von. Philipp Weiß. Dozent: Prof. Dr. P. Eisert

Grundlagen der Spieleprogrammierung

BRYCE 5 Mini Anleitung

BlendaX Grundlagen der Computergrafik

Programmierpraktikum 3D Computer Grafik

Inhalt. Vo rwo rt 9. 4 Inhalt. Bibliografische Informationen digitalisiert durch

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Beleuchtung Schattierung Rasterung

Multiplikation langer Zahlen

Praktikum: Spieleengine im Eigenbau

KEYSHOT 8 NEUHEITEN UND VERBESSERUNGEN

Zu hell oder zu dunkel? Histogramm im ueye Cockpit nutzen

MF Breadcrumbs. Sergej Schefer & Fabian Marx

Übung 7 Rechnerstrukturen

EINFÜHRUNG MULTIMEDIA QUICKTIME VR MIT STITCHER

Überblick Echtzeit-Rendering. Uwe Domaratius

Echtzeit Videoverarbeitung

Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen

Vorkurs Mathematik Übungen zu Komplexen Zahlen

Kubikwurzeln exakt berechnen

KAPITEL Füllmethoden von Ebenen 493. Zebra.tif

Kantonale Prüfungen Mathematik I Prüfung für den Übertritt aus der 8. Klasse

2015 Sebastian Wahner - Die teilweise oder vollständige Weiterverbreitung dieses Werkes ist ohne Einverständnis des Autors

Blender Tutorial Dresden in 3D

Wiederholung. Diese Fragen sollten Sie ohne Skript beantworten können:

Terme vereinfachen bedeutet nichts anderes, als dass man verschiedene Variable addiert, subtrahiert, dividiert oder miteinander multipliziert.

Rendern mit PSD Ebenen in Poser

Transkript:

Real-Time High-Dynamic Range Texture Mapping Jonathen Cohen, Chris Tchou, Tim Hawkins and Paul Debevec Präsentiert von Daniel Wickeroth Einführung Worum geht s? Darstellung realistischer Szenen Innen - Aussen Kein clampen auf 8-Bit-Wertebereich Verwenden der Hardwarwe, um Echtzeit zu erreichen

Einführung Wie funktioniert s? Hinzufügen des exposure levels Belichtungszeit Es wird immer nur ein Teil des Wertebereichs dargestellt Verwenden von mehreren 8Bit-Texturen Zusammenfügen der Texturen durch die Hardware Einführung Warum? Texturen enthalten gewöhnlich Radiance Werte, und keine Reflektionskoeffizienten HDRTMs erlauben beliebig grosse Werte Darstellung von hellen Reflektionen auf dunklen Flächen

Einführung Warum? Mit Hilfe der Gamma-Korrektur kann der Werte bereich extrem vergrößert werden. Beispiel : Eine 16-Bit-Textur hat den 256-fachen Wertebereich einer 8-Bit-Textur Mit einem 2,2-gamma-Mapping ergibt sich ein 256 2,2 facher Wertebereich, also ca. Faktor 200.000 Repräsentation und Rendern von HDRTMs Allgemeine Technik Die meisten Grafikkarten erlauben nur 8-Bit-Texturen Deshalb müssen mehrere Texturen zu einer verbunden werden Das kann die Hardware für uns tun

Repräsentation und Rendern von HDRTMs Allgemeine Technik I(v) : der dargestellte Farbwert e : exposure level v : 16-Bit-Textur Clamp: Funktion, die auf 256 clampt Bei gegebenem Exposure-Level und Weißpunkt : I(v) = clamp(e v) Repräsentation und Rendern von HDRTMs Allgemeine Technik Aufspalten der Textur in zwei 8-Bit Texuren v0 und v1 wobei v0 die niedrigen und v1 die höherwertigen Bits enthält I(v) = clamp(e(v0 + 256 v1)) = clamp(ev0 +256 e v1) = clamp(clamp(e v0) + clamp(256 e v1) Mit clamp(a+b) = clamp(clamp(a)+clamp(b))

Repräsentation und Rendern von HDRTMs Allgemeine Technik Repräsentation und Rendern von HDRTMs Allgemeine Technik Welche Werte sind für e sinnvoll e Dargestellter Bereich 1 / 512 0.. 131072 1 / 256 0.. 65535 1 2 0.. 255 0.. 127,5 Einschränkung auf [ 1 / 256.. 1]

Repräsentation und Rendern von HDRTMs größere Texturen Bei Texturen, die größer sind als 16 Bit, können wir die Gleichung um einen Term erweitern Das ist nicht gut für die Performanz Repräsentation und Rendern von HDRTMs größere Texturen Was tun? 1. Gegeben sei eine 24 Bit Textur v 2. Berechne 2 neue Texturen x und y mit 1. x = v / 256 2. y = clamp ( 2 16-1 ) v Beide können mit 16 Bit dargestellt werden 3. x und y werden in jeweils zwei 8-Bit-Texturen aufgespalten 4. Bei gegebenem e wird I(v) wie folgt berechnet : falls e in [ 1 / 256.. 1] I(v)=clamp (clamp(e y0) + clamp(256 e y1) falls e in [ 1 / 2 256.. 1 / 256 ] I(v)=clamp (clamp(256 e x0) + clamp(256 2 e x1)

Repräsentation und Rendern von HDRTMs größere Texturen Allgemein gilt : Die Anzahl der benötigten Texturen, um eine 8n-Textur mit n>=2 abzuspeichern ist 2n-2 Der nutzbare exposure-level Bereich ist [256 1-n..1] Repräsentation und Rendern von HDRTMs Gamma-Korrektur Die meisten Ausgabegeräte machen eine Gamma- Korrektur Um korrekte Werte zu erzeugen, müssen wir das auch machen Mit 1/γ potenzieren (e v) 1/γ = e 1/γ v 1/γ e = e 1/γ v = v 1/γ I(v) 1/γ = clamp(v e ) = clamp(clamp(e v0 ) + clamp(256e v1 ))

Repräsentation und Rendern von HDRTMs Implementation auf SGI Vorraussetzung sind Gamma-Korrigierte 16-Bit Werte 1. Die höheren Bits in den Framebuffer rendern 2. Blending ausschalten 3. Pixeltransferfunktion so setzten, daß alle Werte mit 256e skaliert werden 4. GLCopyPixel aufrufen Der Framebuffer wird in sich selbst zurückgelesen 5. Additive Blending einschalten 6. Aktuelle Farbe (e,e,e ) 7. Texture Environment so setzten, daß alle Texturwerte mit der aktuellen Farbe moduliert werden. 8. Die unteren 8 Bits in den Framebuffer rendern Repräsentation und Rendern von HDRTMs Implementation auf Nvidia GeForce 2 Problem : keine direkte Unterstützung für Multiplikation mit Werten die größer als 1 sind 2 Texture Combiner, die jeweils 4 Werte (A,B,C,D) verarbeiten. Ergebnis : (A B) + (C D)

Repräsentation und Rendern von HDRTMs Implementation auf Nvidia GeForce 2 Die Combiner sind so eingestellt, dass eine zuvor geclampte Zahl nie mit weniger als ½ multipliziert wird Nach der abschließenden Multiplikation mit 2 ist der dann auf jeden fall größer als 255 Problem : Wir können nur mit 16 multiplizieren Wir benötigen 4n-4 Texturen wir können aber immer nur 2 Texturen gleichzeitig verwenden Wir brauchen einen Trick Repräsentation und Rendern von HDRTMs Implementation auf Nvidia GeForce 2 / Trick Wir erstellen zunächst die bisher verwendeten Texturen x0 und x1, wobei x0 die niedrigen und x1 die höherwertigen Bits enthält Dann erstellen wir eine dritte Textur z mit z = clamp (16 clamp(x1)) Wir erhalten clamp(256x1) durch clamp(16z) Falls e > 1/16 ersetzen wir x1 durch z im texture combiner setup Falls e < 1/16 multiplizieren wir e mit 16, teilen B und D in der TC1 Stage durch 16 und verwenden x1 wie in der Tabelle

Anwendungen Visualisierung einer HDR-Szene Es wurde ein High Dynamic Range Image Panorama Viewer geschrieben (Jonathan Cohen) Cube based Environment Mapping DOF s : Rotation, Zoom, Exposure Level

Anwendungen Lighting Mit Hilfe von HDRTM können scharfe spekulare Spiegelungen auf dunklen Objekten gerendert werden. Teapot, fresnel Reflektion auf dunklem Monolithen Anwendungen Lighting Berechnug der Position der Speigelung mit Environment mapping Ändern der Kamera Projektionsmatrix in Abhängigkeit der Position des Reflektors Exakte Berechnung der Position, aber die Intensität stimmt nicht Reflektierte Farbe in full dynamic range berechnen Spekularer Reflektionskoeffizient Φ I(v) = clamp(eφv) e = e Φ Gamma-Korrektur e =(e Φ) 1/γ

Anwendungen Lighting Rendern von spiegelnden Materialien (glossy) 1. Das Objekt mit einer vorverarbeiteten diffusen Textur rendern 2. Dann noch mal mit einer dunkleren, spekularen environment map rendern 3. Die Ergebnisse werden im Framebuffer addiert Ist zwar physikalisch nicht korrekt, wegen der gamma-korrektur, sieht aber gut aus.