Environment Mapping
← 3D Texturen | ● | Environment Mapping in OpenGL →
Mit Environment Mapping wird die Reflektion der Umgebung auf Oberflächen simuliert (nur Umgebung, keine Selbstreflexion!). Wir vor allem für die Simulation metallischer und lackierter Oberflächen verwendet.
Dafür wird eine sogenannte Cube Map definiert, die Texturen für alle Seiten einer gedachten Box um die Szene bietet:
Eine solche Cube Map kann über 3(!) Kooridinaten angesprochen werden; die Grafikkarte interpretiert die Koordinaten als Vektor vom Ursprung des Würfels in eine Richtung, selektiert die getroffene Fläche (aufgrund der größten Komponente) und schlägt in dieser nach.
Ein typischer Vektor der dafür benutzt wird ist der an der Normalen gespiegelte View-Vektor.
Im Netz sind etliche frei verfügbare Cubemaps zu finden.
Dynamische Environment Maps
Für stärkeren Realismus muss die Environment Map die aktuelle (!) Szene wiedergeben. Dazu zeichnet man die Szene zuerst von Mittelpunkt des reflektierten Objektes 6x (siehe Render-to-Texture), und benutzt diese 6 Texturen dann als Environment Map für das finale Rendering vom regulären Viewport.