Spiegelungen
← Brechungseffekte | ● | Postprocessing →
Für Spiegelungen zeichnet man die Szene erst einmal in eine Textur aus Sicht der an der Spiegelfläche reflektierten Kamera:

http://khayyam.kaplinski.com/2011/09/reflective-water-with-glsl-part-i.html
Die Transformation der Kamera berechnet man über M′camera=Mreflection⋅Mcamera
mit der Reflektionsmatrix der Spiegelfläche Nx⋅x+Ny⋅y+Nz⋅z+D=0 (N ist der Normalenvektor der Fläche):
Mreflection=(1−2N2x−2NxNy−2NxNz−2NxD−2NxNy1−2N2y−2NyNz−2NyD−2NxNz−2NyNz1−2N2z−2NzD0001)
Anschließend zeichnet man die Szene regulär, wobei die Spiegelfläche mit der vorher gerenderten Textur belegt wird. Natürlich kann man die Texturkoordinaten wieder lokal verändern, um z.B. Wasser zu simulieren.

← Brechungseffekte | ● | Postprocessing →