Kaum VRAM-Bedarf: AMD erfindet das Bäume-Rendern mit Hilfe aus Coburg neu

Christoph Riedel
169 Kommentare
Kaum VRAM-Bedarf: AMD erfindet das Bäume-Rendern mit Hilfe aus Coburg neu
Bild: Hochschule Coburg

Forscher der Hochschule Coburg haben zusammen mit Mitarbeitern von AMD ein neues Verfahren zum Echtzeit-Rendern von Bäumen entwickelt, das den Bedarf an Texturen im VRAM extrem reduziert. Genutzt wird dabei das Konzept der prozeduralen Synthese um die Bäume in all ihren Eigenschaften komplett in Echtzeit zu erstellen.

Die Arbeit wurde kürzlich auf der Konferenz „High Performance Graphics 2025“ (PDF) vorgestellt. Die prozedurale Synthese (englisch: „procedural generation“) ermöglicht es, die Bäume in all ihren Eigenschaften komplett von einem Algorithmus in Echtzeit zu erstellen, ohne dass zuvor erstellte Texturen in den VRAM geladen werden müssen. Dabei werden praktisch alle relevanten Parameter berücksichtigt, die sich ein Entwickler wünschen könnte und nebenbei benötigt der Algorithmus noch verblüffend wenig Rechenzeit, um eine dichte Vegetation zu erschaffen.

Prozedurale Synthese ist keine neue Methode und wird bereits seit Jahrzehnten benutzt, um einzelne Aspekte von Videospielen mit minimalem Speicherbedarf zu erstellen. Beispiele sind die Schusswaffen im 2009 erschienen Borderlands, derer 17 Millionen Stück per prozeduraler Synthese erstellt werden. Auch No Man’s Sky nutzt die Methode für die Erstellung der vielen Planeten samt Flora und Fauna, um die mit über einer Trillion möglicher Planeten beworbenen „endlosen Weiten“ darstellen zu können.

Das Vorgehen ist dabei im Prinzip einfach: Anhand sorgfältig definierter Parameter, denen der Spieleentwickler nach Wunsch Werte zuweist, wird beim Start des Spiels die Landschaft synthetisiert. Das passiert nicht zufällig, sondern immer gleich, so dass der Entwickler die Kontrolle über alle Eigenschaften der Landschaft behält. Allerdings können die Werte, die einzelnen Teilen der Landschaft zugewiesen werden, vom Zufallsgenerator erstellt werden.

Mit der prozeduralen Synthese geht immer einher, dass VRAM eingespart wird, weil vorgefertigte Texturen durch die Synthese ersetzt werden. Das macht die Methode für Videospiele besonders interessant.

Was ist neu am Ansatz von AMD?

Bäume werden heutzutage bereits prozedural synthetisiert, der Vorgang benötigt pro Baum aber mehrere Sekunden und wird deshalb im Vorhinein für mehrere Level of Details (LOD) pro Baum erstellt und als Satz von Texturen abgespeichert. Im Spiel werden dann lediglich die Texturen geladen, für den einzelnen Baum muss nichts mehr berechnet werden. Da bei Grafikkarten die Größe und Geschwindigkeit des VRAMs in den letzten Jahren langsamer wuchs als die Rechenleistung, ist die Auslagerung der Arbeit in den VRAM aber immer weniger sinnvoll. Moderne, hochdetaillierte Spielewelten müssen im Gegenteil besonders sparsam mit VRAM-Belegung und Bandbreite umgehen.

Der Ansatz von AMD ist nun Entwicklern einen Baukasten zur prozeduralen Synthese von Bäumen zur Verfügung zu stellen, der nahezu alle Anwendungsfälle abdeckt und dadurch universell und besonders einfach zu benutzen ist. Der Ansatz basiert auf einem verhältnismäßig einfachen Modell für die Synthese von Stämmen und Zweigen von 1995, das durch zahlreiche Eigenschaften erweitert wurde um vollkommen realistische Bäume zu erzeugen. Mit mehreren graphischen Optimierungen wurde die Rechenzeit im Anschluss soweit reduziert, dass Echtzeit-Rendering möglich wird.

Hohe Realitätsnähe bei Form, Rinde und Blättern

Das Modell erzeugt Stamm und Zweige in maximal vier Stufen, wobei Stufe 0 der Stamm ist und jede weitere Stufe dünnere abzweigende Äste erzeugt. Zusätzlich kommen als letzte Stufe die Blätter hinzu, die ursprünglich als Textur vorgesehen waren. Ein vertikaler Parameter erlaubt außerdem noch das Wachsen in Richtung Sonne beziehungsweise den Einfluss der Schwerkraft zu modellieren. Von den Forschern um AMD wurde das klassische Modell um folgende Fähigkeiten erweitert: Die Darstellung von Blättern, Nadeln, saisonalen Veränderungen, gestutzten Ästen sowie Animationen (zum Beispiel bei Wind), weiche Übergänge an den Stämmen und prozedural erzeugte Höhenunterschiede auf der Oberfläche.

Um die Oberfläche der Bäume besonders realistisch zu gestalten, wird zuerst die Form des Baums geglättet. Denn da die Geometrie der Stämme beziehungsweise Äste mit sehr wenig Parametern definiert wird, ist sie verhältnismäßig grob. Das Modell interpoliert diese grobe Oberfläche als kubisch hermiteschen Spline, um nahtlose Übergänge zu ermöglichen. Gleichzeitig gibt es einen aufwendigen Mechanismus, um Baumrinde realistisch darzustellen. Dazu wird unter Anderem auf Tesselation zurückgegriffen, allerdings wird zuvor aufwendig geprüft, welche Tesselation-Faktoren notwendig sind und wie stark diese genutzt werden müssen. Geht man nahe an einen Baum heran, wird die tesselierte Rinde durch eine mit prozedural erzeugten Höhenunterschieden geformte ersetzt. Das Verfahren wird als Summe bekannter Methoden nur kurz beschrieben, aber das Ergebnis ist definitiv beeindruckend.

Die interpolierte Baumoberfläche wird mit Worley-Rauschen und Perlin-Rauschen strukturiert.
Die interpolierte Baumoberfläche wird mit Worley-Rauschen und Perlin-Rauschen strukturiert. (Bild: Hochschule Coburg)

Für die Blätter wird ebenfalls auf umfangreiche Technik zurückgegriffen, um bei der Realitätsnähe keine Wünsche offen zu lassen. Der Entwickler definiert lediglich eine Blatthälfte mit drei Koordinaten und eine Anzahl von Lappen, aus denen sich das Blatt zusammensetzt. Der Algorithmus trianguliert daraus die Form und erstellt dynamisch ein LOD, das zur Distanz zwischen Blatt und Betrachter passt. Der Übergang zwischen verschiedenen LODs ist damit nicht mehr stufenweise, sondern nahtlos. Geht man sehr nahe an ein Blatt heran, werden Parameter für die Blattadern, die Dicke des Blatts und dessen Oberfläche genutzt, um prozedural eine detaillierte Darstellung zu erzeugen. Bei Nadelbäumen werden diese Blattader-Parameter als Nadeln interpretiert.

Saisonale und physikalische Veränderungen

Wer der Meinung ist, dass mit Stamm, Zweigen und Blättern alles getan ist, greift zu kurz. Das neue Modell unterstützt außerdem noch die Veränderungen der Bäume mit den Jahreszeiten, Animationen zur Interaktion mit Wind sowie weitere Anpassungen. Für die Jahreszeiten gibt es einen eigenen Parameter, der automatisch die Anwesenheit von Blättern (Winter vs. Sommer) sowie deren Anzahl (graduelles Fallen der Blätter im Herbst) steuert.

Im Winter fehlen Blätter, während die Nadeln eine gefrorene Oberfläche bekommen. Schnee auf den Ästen wird per Höhenunterschied in vertikaler Richtung eingestellt, wobei die zugewonnene Oberfläche die Materialeigenschaften (Farbe, Verhalten) von Schnee bekommt. Gleichzeitig wird der Parameter für die Schwerkraft erhöht, so dass sich Zweige nach unten biegen. Im Frühling werden Blüten synthetisiert, die mit dem gleichen Algorithmus wie Blätter, aber mit mehr Lappen und in Ringform, erzeugt werden. Im Sommer wird eine zufällige Menge der vorher erschienenen Blüten zu Früchten, die eine tesselierte Oberfläche erhalten. Neben dem Verschwinden von Blättern ändert sich im Herbst auch deren Farbe graduell. Die Blätter verschwinden dabei nicht gleichzeitig sondern bekommen zufällig einen zeitlichen Versatz zugewiesen.

Bewegung im Wind in Abhängigkeit von Windstärke und -Richtung wird beim Erzeugen des Baums berechnet. Dazu werden alle synthetisierten Elemente vom Wind weggedreht, wobei die Drehung chaotisch oszilliert, um die Dynamik der Bewegung darzustellen. Die Stärke der Oszillation hängt von Länge und Dicke der Äste ab.

Vergleich verschiedener Windgeschwindigkeiten über 10 Sekunden.
Vergleich verschiedener Windgeschwindigkeiten über 10 Sekunden. (Bild: Hochschule Coburg)

Als letzte Qualitätsmaßnahme können Äste per Raytracing Algorithmus einen Strahl in Wachstumslänge aussenden. Trifft der Strahl in kurzer Distanz auf ein Objekt, wird der Ast entsprechend gekürzt. Dadurch wird verhindert, dass Bäume durch andere Objekte durchgehen, das sogenannte Clipping.

Wie funktioniert das in Echtzeit?

Um effizientes Rendern dieser Bäume zu ermöglichen, werden zwei neue Funktionen von DirectX 12 benutzt: Work Graphs und dessen Funktion Mesh Nodes, die beide erst 2024 vorgestellt wurden. Work Graphs beschreibt die Möglichkeit, dass eine Rechenaufgabe (Shader) selbstständig neue Aufgaben erzeugt. Dadurch sind weniger Umwege zur CPU zur Abfrage neuer Befehle notwendig und die GPU wird in gewisser Weise autonom. Das hat Vorteile bei rekursiven Strukturen oder wenn man einen Teil der Grafik bis zu einem gewünschten Detaillevel Stück für Stück aufbauen möchte.

Dabei wird hier besonders clever vorgegangen: Um Overhead zu vermeiden wird nicht jeder Teil des Baums in einen eigenen Shader gepackt, sondern Aufgaben werden so gebündelt, dass die typischen 32 Werte pro Befehlskette (Wave32) erfüllt werden. Analog wird bei der Berechnung der Blätter vorgegangen, so dass genug Blätter pro Befehl berechnet werden müssen um die Rechenwerke auszulasten.

Diese Work Graphs waren bislang nur innerhalb von Compute-Aufgaben möglich. Zur Nutzung im Umfeld der Spielegrafik benötigte es also eine zusätzliche Funktion, die das Ergebnis entgegen nahm und an den Rasterizer zur Bildausgabe schickte. Für kleinteilige Aufgaben gab es dadurch zusätzlichen Overhead. Mesh Nodes setzt an der Stelle an und ermöglicht es, einem autonom aufgerufenen Shader direkt Ergebnisse an den Rasterizer zu schicken.

Bevor Teile eines oder ein ganzer Baum synthetisiert werden, wird Culling durchgeführt. Culling ist eine Prüfung, ob die zu erstellenden Objekte im Sichtfeld des Betrachters liegen. Ist das nicht der Fall, wird das Objekt übersprungen. Das Ganze geschieht als generationenübergreifendes Culling, das heißt alle nachfolgenden Teile werden bei der Prüfung berücksichtigt, damit nicht eine Blattspitze am Ende doch sichtbar wäre und so Lücken beim Überspringen entstehen könnten. Das Culling erlaubt so die volle Bildtreue bei gleichzeitig gesparten Ressourcen.

Bei den Blättern, die zahlenmäßig sicher am meisten vorhanden sind, wird aggressiv das oben beschriebene, nahtlose LOD angepasst. Ist der Betrachter sehr weit weg, wird automatisch die Anzahl der gezeigten Blätter reduziert, um Rechenaufwand zu sparen. Damit der Unterschied nicht auffällt, werden die Blätter, die auch bei großer Distanz stehen bleiben, langsam größer während die, die verschwinden, langsam kleiner werden. Bei Blättern mit mehreren Lappen verschmelzen diese mit wachsender Distanz zu einem.

Als Letztes wird zum Erreichen einer bestimmten Framerate eine dynamische Detailstufe ähnlich wie die Algorithmen für Super Resolution von AMD und Nvidia vorgeschlagen. Diese ist allerdings nicht pixelbasiert, sondern das LOD der Bäume wird nahtlos von Frame zu Frame innerhalb vom Entwickler vorgegebener Grenzen hoch- beziehungsweise heruntersetzt. Die einzelnen Parameter, die sich in der Qualität ändern dürfen, können priorisiert werden, so dass die unwichtigsten Details zuerst reduziert werden. Die maximale Änderungsrate der Darstellungsqualität kann ebenfalls festgelegt werden, um abrupte Qualitätsverluste zu vermeiden.

Das Demobeispiel im Video

Die Forscher haben eine Benchmarkszene mit 1.200 Bäumen, die den Park Ørstedsparken in Kopenhagen nachbildet, erstellt. Sie wurde auf einer AMD Radeon RX 7900 XTX gerendert. Im Video zeigen sie diese sowie die verschiedenen Funktionen des Tools.

Der Benchmark wird von den Forschern abschließend umfassend analysiert. Um zu zeigen, wie viel VRAM eingespart wurde, rechnen die Forscher vor, dass eine vergleichbare Szene aus statischen Texturen knapp 35 GiB an Speicher belegen würde. Zusätzlich genutzte Features wie mehrere LODs, saisonale Veränderungen und Wind würde die Menge weiter erhöhen. Die Parameter, aus denen die gesamte Szene prozedural synthetisiert wurde, benötigen aber nur 51 KiB. Das sind etwa 704 Bytes pro Baum. Die Forscher erwähnen allerdings auch, dass die komplexen Shaderstrukturen insbesondere beim Work Graph zusätzlich 1,5 GiB an Speicher verbrauchen. Dieser Speicherbereich steht nach dem Renderschritt zwar wieder zur Verfügung, ganz so enorm wie anderswo berichtet ist die Ersparnis an VRAM aber nicht.

Frametimes in der Benchmarkszene.
Frametimes in der Benchmarkszene. (Bild: Hochschule Coburg)

An Geschwindigkeit mangelt es der Szene nicht. Im Durchschnitt werden nur 3,13 ms gebraucht, um die Bäume komplett zu erstellen. Mit Geometrie-Buffer und Schatten werden es 4,72 ms. Die gesamte Szene mit Gras, Umgebungsverdeckung, Reflexionen und TAA benötigt 7,74 ms und liegt damit unterhalb der 8,33 ms, die für eine Framerate von 120 Hz zur Verfügung stehen. Allerdings wird das je nach Komplexität der Szene über- beziehungsweise unterschritten. Wird hingegen das automatische LOD aktiviert, bleibt die Bildrate auch in den schwierigsten Szenen bei 120 Hz, bei entsprechenden Detailverlusten.

Fazit

Schon mehrfach wurden in der Vergangenheit einzelne Aspekte eines Videospiels mit Prozeduraler Synthese erstellt. Der hier von den Forschern der Universität Coburg und AMD gewählte Weg, Bäume komplett prozedural erzeugbar zu machen, ist neuartig, da den Spieleentwicklern direkt ein Tool zur Verfügung gestellt wird. Die Bäume belegen im Anschluss kaum noch Platz im VRAM, nur während der Berechnung wird welcher benötigt. Dabei läuft zumindest die von den Forschern gezeigte Benchmarkszene mit dutzenden Bäumen gleichzeitig im Blickfeld sehr flüssig.

Wie ist nun die Qualität der erstellten Bäume? Zugegeben ist die Darstellung stellenweise noch durchwachsen. Beim Betrachten des Demovideos fällt mehrfach auf, dass insbesondere die Blätter auf mittlerer Distanz recht zweidimensional wirken. Viele Bäume in größerer Distanz wirken dagegen überzeugend, ebenso wie einzelne Elemente von nahem, wenn die höchste Detailstufe greift. Deswegen scheint es dem Autor wahrscheinlich, dass letzten Endes eine Kombination aus prozeduraler Synthese und vorgefertigten Texturen in Zukunft zum Einsatz kommen wird. So könnten einzelne Bäume noch mit Texturen bedacht werden, während größere Ansammlungen mit AMDs neuem Ansatz schlank und schnell berechnet werden.

Dieser Artikel war interessant, hilfreich oder beides? Die Redaktion freut sich über jede Unterstützung durch ComputerBase Pro und deaktivierte Werbeblocker. Mehr zum Thema Anzeigen auf ComputerBase.

Unsere Bots: aktuelle RTX 50 Deals und RX 9000 Deals mit 📉Preistrend und Nintendo Switch 2 kaufen.