Processing math: 100%
Computergrafik

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 Mcamera=MreflectionMcamera

mit der Reflektionsmatrix der Spiegelfläche Nxx+Nyy+Nzz+D=0 (N ist der Normalenvektor der Fläche):

Mreflection=(12N2x2NxNy2NxNz2NxD2NxNy12N2y2NyNz2NyD2NxNz2NyNz12N2z2NzD0001)

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

Options: