Environment Mapping oder auch Reflection Mapping ist eine effiziente Methode, um in der (3D-)Computergrafik spiegelnde Oberflächen zu simulieren und zu rendern.

Beispiel eines spiegelnden 3-dimensionalen Objekts. Die simulierte Spiegelung wird mit kubischem Environment Mapping erreicht.

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

Bearbeiten

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 Rendering 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

Bearbeiten
 
Funktionsweise von kubischem Environment Mapping. Mit Hilfe der Vertexnormalen wird berechnet, auf welchen Punkt der Umgebungstextur die Sichtlinie weitergeleitet wird.

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.

Bearbeiten