Site icon Atelier für 3D-Visualisierungen, V/AR. Produktvisualisierung und Rendering. ❤ r23

Panorama Cube Mapping oder Cubic Environment Mapping

Cube Mapping

Die 3D Teekanne, die uns in den letzten Tagen im Blog begleitet - hat einige große Nachteile. Das Modell, das zur Berechnung der Bilder eingesetzt wird, berücksichtigt keine Spiegelungen. Außerdem wird die Lichtbrechung in Glas oder anderen durchsichtigen Objekten nicht berechnet.

Verwendet man hingegen Raytracing, kann man Spiegelungen und Brechung realistisch berechnen lassen. Wozu also noch Environment Maps? Vor allen Dingen deswegen, weil sie um ein Vielfaches schneller sind! Insbesondere bei günstiger Objektform und wenn in einer Animation nur die Kamera bewegt wird, lassen sich Spiegelungen und Brechung ohne jeden zusätzlichen Zeitaufwand rendern. In diesem r23Artikel zeige ich euch eine Einführung und einige Beispiel.

Eine Cubemap ist grundsätzlich eine Textur, die 6 einzelne 2D-Texturen enthält, die jeweils eine Seite eines Würfels bilden: ein strukturierter Würfel. Du fragst dich vielleicht, was ist der Sinn eines solchen Würfels? Warum die Kombination von 6 einzelnen Texturen zu einer einzigen Einheit statt nur mit 6 einzelnen Texturen? Nun, Würfelkarten haben die nützliche Eigenschaft, dass sie mit einem Richtungsvektor indexiert / abgetastet werden können. Stellen Sie sich vor, wir haben einen 1x1x1 Einheitenwürfel mit dem Ursprung eines Richtungsvektors, der in seinem Zentrum wohnt.

Wenn wir uns vorstellen, dass wir diese Würfelform ein Panorama legen sieht das Ergebnis von den Positionsvektoren so aus:

Panorama

Beispiel im neuen Browser-Fenster anzeigen.
https://blog.r23.de/3d/loader/cubemap_2.html

Navigationshilfe

drehen: Drücken der linken Maustaste und bewegen der Maus
Vergrößern/Verkleinern: Mausrad drehen
Verschieben: die mittleren Maustaste gedrückt halten und die Maus bewegen

Wenn wir unsere Teekanne, die uns in den letzten Beiträgen begleitet hat, in einem hochglanzpoliertem Material in die oben gezeigt „Szene“ einfügen, erhalten wir folgendes Ergebnis:

Spiegelung auf der Teekanne

Beispiel im neuen Browser-Fenster anzeigen.
https://blog.r23.de/3d/loader/cubemap_1.html

Navigationshilfe

drehen: Drücken der linken Maustaste und bewegen der Maus
Vergrößern/Verkleinern: Mausrad drehen
Verschieben: die mittleren Maustaste gedrückt halten und die Maus bewegen

Environment Mapping oder auch Reflection Mapping ist eine effiziente Methode, um in der 3D-Computergrafik spiegelnde Oberflächen zu simulieren und zu rendern. Dabei wird die Umgebung des spiegelnden Objekts als Textur gespeichert und auf die Oberfläche des Objekts abgebildet (mapping). Die am häufigsten gebrauchten Arten, um die umgebende Textur zu speichern, sind das sphärische und das kubische Environment Mapping. Bei ersterem wird die Textur, die die Umgebung darstellt, auf das Innere einer Kugel abgebildet, während bei zweiterem die Umgebung auf die sechs Seiten eines Würfels „aufgefaltet“ wird.

Der Vorteil von Environment Mapping gegenüber Raytracing ist die einfachere und damit schnellere Berechnung der simulierten Reflexionen. Der große Nachteil dieser Technik ist, dass die zu spiegelnde Umgebung bereits vor dem Rendern des Objekts bekannt sein muss und somit sich ändernde Umgebungen bzw. Selbstreflexionen nicht einfach umzusetzen sind.

Environment Mapping kann auch angewendet werden, um transparente Volumen mit einem Brechungsindex darzustellen.

Sphärisches Environment Mapping

Beim sphärischen Environment Mapping (zum Teil auch als Standard Environment Mapping bezeichnet) wird die Umgebung auf das Innere einer hohlen Kugel abgebildet. Die Innenfläche der Kugel wird auf eine 2D-Textur projiziert. Sphärische Texturen werden mit Hilfe eines (virtuellen) Fischaugenobjektivs oder durch vorgängiges einer bestehenden virtuellen Szene erstellt. Die Reflexionen, bzw. die Farben der einzelnen Pixel auf dem Objekt, werden bestimmt, indem berechnet wird, auf welchen Punkt der Textur der Reflexionsvektor zeigt.

Im Vergleich zum Raytracing ist diese Operation um einiges schneller zu berechnen, da die abzubildende Textur und somit alle verwendeten Farben bereits vorhanden sind. Da die Kugel aus gekrümmten Flächen besteht, welche auf ein gerades 2D-Bild projiziert (gestreckt) werden, können am Rand der Textur Verzerrungen entstehen, welche von bestimmten Blickwinkeln aus unschön wirken. Um diesen Umstand zu beseitigen, wurde das kubische Environment Mapping entwickelt.

Kubisches Environment Mapping

Kubisches Environment Mapping funktioniert prinzipiell gleich wie das sphärische Environment Mapping, außer dass die Umgebung auf einen Würfel (analog einer Skybox) abgebildet wird. Dadurch, dass die Umgebung als gerade Flächen projiziert werden kann, entstehen keine Verzerrungen.

Quelle der Beschreibung Wikipedia.

Teekannen in sind selbstverständlich nicht nur hochglanzpoliert, sondern auch bestehenden auch aus anderen Materialien. Zum Beispiel kann das Matrial durchsichtig sein...

Teekanne

Beispiel im neuen Browser-Fenster anzeigen.
https://blog.r23.de/3d/loader/cubemap.html

Navigationshilfe

drehen: Drücken der linken Maustaste und bewegen der Maus
Vergrößern/Verkleinern: Mausrad drehen
Verschieben: die mittleren Maustaste gedrückt halten und die Maus bewegen

Links

www.opengl.org/
www.nvidia.com
de.wikibooks.org

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freue ich mich auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Ich bin dir für jede Unterstützung dankbar!

Panorama-Foto: Humus http://www.humus.name

Exit mobile version