Sehen Sie vier Milliarden Jahre Menschheit in einem Pixel-Shader
Ich, im Jahr 2000: Ah, also können Shader Texturen in Quake 3 glänzend oder wackelig aussehen lassen. Ich, im Jahr 2016: oh, okay, also können auch Shader zum Erstellen verwendet werden Fischschwärme in Abzu. Ich, gerade jetzt: Warte, damit Shader es können Auch verwendet werden, um die Geschichte eines Planeten über viereinhalb Milliarden Jahre zu erzählen, von einem Klumpen geschmolzenen Gesteins bis zur Entstehung von Bergen, Flüssen und menschlichen Städten.
Menschheitein von David A. Roberts erstellter In-Browser-Shader, ist die vier Minuten wert, die zum Anschauen benötigt werden.
Wenn Sie lieber nicht auf den obigen Link klicken möchten, können Sie sich die Animation mit etwas Musik auf Vimeo ansehen:
Die Animation durchläuft sechs Hauptstadien in der Entwicklung eines Planeten: Protoplanet, bei dem die Oberfläche glühend heiß ist; die Verschiebung tektonischer Platten, um Berge und Ozeane zu bilden; hydraulische Erosion, die das Gelände mit Flüssen markiert; globales Klima, das den Wechsel der Jahreszeiten darstellt; die Verbreitung des Lebens, einschließlich Pflanzen, Pflanzenfresser und Raubtiere; und schließlich die Menschheit, wenn wir Städte bauen.
Sein Schöpfer, David A. Roberts, hat eine lange Erklärung geschrieben wie jede dieser Stufen aufgebaut ist, einschließlich der wissenschaftlichen Modelle, auf denen sie basiert, und Beispiele für den Code, der verwendet wird, um sie in einem Shader nachzubilden. Besonders beeindruckend ist das Zusammenspiel der verschiedenen Simulationen: Das Klima folgt aus der Verteilung der Ozeane, und das Leben, einschließlich des Pflanzenwachstums, reagiert auf das Klima.
Die Simulation endet mit der Darstellung der Menschheit, die alle verfügbaren fossilen Brennstoffe verbrennt, „was zum Verschwinden der Menschheit von einem bedeutenden Teil des Planeten führt“. Uff.
Ich komme zu all dem spät. Roberts hat den Shader bereits 2018 erstellt und er hat online Aufmerksamkeit erregt, als er letztes Jahr die Aufschlüsselung seiner Funktionsweise geschrieben hat. Seitdem hat er geschrieben ein weiterer Beitrag, der die Erfahrung aufschlüsselt, “viral” zu werden.
Ein Shader ist nur ein Programm, das für die Ausführung auf einer GPU entwickelt wurde und normalerweise verwendet wird, um Anweisungen zu geben, wie Pixel auf dem Bildschirm gezeichnet werden sollen. Ich weiß, dass GPUs leistungsfähig genug sind, um alle möglichen Dinge zu tun, aber ich bin trotzdem jedes Mal niedergeschlagen, wenn ein Shader für etwas anderes verwendet wird, als ein Skelett zum Leuchten zu bringen.