Ich hatte mich vor etwas mehr als einer Woche bei Shadertoy.com angemeldet und heute meine eine Echtzeit-Animation programmiert. Es erinnerte mich etwas an die Zeit vor so 15–20 Jahren, als ich mit dem scriptbasierten Raytracing-Programm POV-Ray auch durch Schreiben von mathematiklastigem Code Grafiken erzeugte. Da dauerte ein Bild gut und gerne Stunden bis Tage zum Berechnen. Hier jedoch geht es darum, dass 60 Bilder pro Sekunde fertig werden.
Bei POV-Ray definiert man die Elemente und Eigenschaften der zu erstellenden 3D-Szene und der Raytracer erstellt ein Bild aus der Sicht der Kamera, Pixel für Pixel und unter Berücksichtigung aller Reflexionen und sowas wie Radiosity, Volumetrischem Licht und Anti-Aliasing.
Shader erzeugen alles zusammen, sowohl die Objekte und auch deren Darstellung. Die Kunst dabei ist, die Funktion mainImage() so zu schreiben, dass sie aus den Koordinaten eines Pixels dessen Farbe errechnet.
Wie das aussehen kann, zeigt mein erster Shader.