Showcase 08 · Prozedurale Welt
Welt
Ein Flug über eine unendliche Insellandschaft mit Bergen, Meer, Wolken und einem ganzen Tag in Markenfarben. Nichts davon ist ein Bild: Jedes Pixel wird aus Formeln berechnet. Bewegen Sie die Maus über die Bühne, um zu lenken und zu steigen, oder wischen Sie seitlich; ohne Eingabe fliegt der Autopilot durch die Täler. Der Regler stellt die Tageszeit ein.
Die Live-Demo benötigt JavaScript und WebGL 2. Das Bild zeigt die Landschaft in der Dämmerung; die Erklärung unten ist auch ohne sie lesbar.
- Uhrzeit
- –
- Schritte/Pixel
- –
- Renderauflösung
- –
- Bilder/s
- –
- Shader
- –
So funktioniert es
Die Landschaft ist eine einzige Formel: fraktales Rauschen, viele Lagen immer feinerer Wellen übereinander. Ihre Ableitungen werden gleich mitberechnet und dämpfen die feinen Lagen an steilen Hängen, so entstehen glatte Täler und zerklüftete Grate wie nach Erosion. Für jedes Pixel tastet sich ein Strahl über diese Höhenfunktion, bis er den Boden trifft (Raymarching); in der Ferne werden die Schritte länger und die Details gröber.
Das Wasser spiegelt Himmel und Berge und lässt nach den Fresnel-Gleichungen je nach Blickwinkel den gebrochenen Meeresgrund durchscheinen, der mit der Tiefe Licht verliert. Die Wolken sind ein Volumen, durch das der Strahl in Schritten wandert und dabei das Licht der Sonne streut. Der Himmel folgt der Streuung in der Atmosphäre, die Ferne verschwindet im Dunst. Tageszeiten, von der violetten Dämmerung bis zum Frozen-blauen Morgen, kommen aus den Design-Tokens. Gerechnet wird in reduzierter Auflösung, die sich wie Schrittzahl, Schatten und Wolken der Bildrate anpasst.