Meine aktuelle Errungenschaft, und auch mein aktueller Auftrag: ein wirklich großer Sparse Voxel Tree als Basis für ein "Bau Dir Deine Welt"-Spiel. Das Ganze liegt leider noch in den Grundzügen, da man bei praktisch jedem kleinen Handgriff ganz schnell bei derartig absurden Datenmassen ist, dass ich meine ganzen kleinen "Mal schnell was auf den Bildschirm kriegen"-Tricks nicht anwenden kann.
Die Landschaft ist aktuell auf Basis einer Height Map erstellt, auf der ich eine Erosions-Simulation laufen lasse, um danach das Ganze in Voxel-Volumen zu gießen. Der Landschaftsgenerator wird noch einige Tricks lernen, wie z.B. Steilklippen, Felsen, Findlinge und Bäume, aber auch Straßen, Häuser und sowas zu generieren, die man im Spiel dann nach Herzenslust erkunden, mit Brettern vernageln oder mit der Spitzhacke durchlöchern kann. Die große Herausforderung wird dann allerdings, den Landschaftsgenerator auch schnell genug zu bekommen, damit er symmetrisch auf allen Multiplayer-Clients laufen kann und in absehbarer Zeit fertig wird. Aktuell rechnet das Ding schon in der Basisversion 6 Minuten für die sichtbare Landschaft, wobei etwa 5s für die Height Map, 3min für die Erosionssimulation und nochmal 3min für die Erstellung des Sparse Voxel Trees draufgehen.

Wie man sieht, gibt es noch ne Menge Probleme. Wegen der wirklich abartigen Datenmassen muss der Renderer bald wie möglich detailreduzierte Stufen darstellen, sonst killt die O(n^3)-Komplexität jede noch so starke Hardware. Für detailreduzierte Stufen werden einfach von jeweils 2x2x2 Subknoten die Durschnittsfarbe berechnet... aber damit kommt dann zum Beispiel das Braun der Erde durch, weil in der Entfernung die dünne Schicht Gras auf der Erde kaum noch im Durchschnitt sichtbar ist. Das sind so Probleme, an die ich vorher nicht gedacht habe. Die Voxel-"Flocken" des aktuellen Renderers bekommen noch Texturen und BumpMaps und Schatten/Echtzeit-GI wird auch noch kommen, aber der grundlegende Voxel-Look ist durchaus beabsichtigt. Retro und so...
Zielgröße ist übrigens eine Landschaft von 20480x4096x20480 zu je 5cm Voxelgröße. Dafür habe ich 4GB Speicherbudget, an dem ich aktuell gerade so kratze. Ich habe aber noch ein paar Ideen für Sparmaßnahmen, so dass ich da am Ende noch ein bis 2GB sparen kann.