-
Projektüberblick
- Ich habe über mehrere Jahre hinweg an 3D-Szenen und Levels gearbeitet, die im Browser laufen
- Anfangs begann alles mit einzelnen Demos, entwickelte sich aber nach und nach zu stärker miteinander verbundenen, spielähnlichen Projekten
- Dabei habe ich prozedurale und generative Techniken eingesetzt, um bestimmte Elemente umzusetzen
-
Shaders + Textures
- Die meisten Texturen sind nahtlos gestaltet, sodass selbst auf großen Flächen keine sichtbaren Muster entstehen
- In Three.JS wurden benutzerdefinierte Shader erstellt, um zusätzliche Funktionen bereitzustellen
-
Triplanar Mapping
- Ermöglicht das Aufbringen von Texturen auf Meshes ohne UV-Map und ist daher nützlich für prozedural generiertes Terrain
- Lässt sich einfach implementieren und auf verschiedene Meshes anwenden
- Mit der Funktion
pow()werden Gewichtungen angepasst, um die Qualität zu verbessern und die Performance zu optimieren
-
Hex Tiling
- Ein Algorithmus, der die Wiederholung nahtloser Texturen verbirgt
- Wurde als eigenständige Bibliothek portiert, die sich leicht in Three.JS-Projekte integrieren lässt
- Erfordert eine UV-Map und verursacht einen hohen Performance-Overhead
-
Depth Pre-Pass
- Zur Performance-Steigerung wird die Szene zweimal gerendert, um die Tiefenwerte der Pixel aufzuzeichnen
- In Szenen mit viel Overdraw kann das die Performance um mehr als 30 % verbessern
-
AI-Powered PBR Texture Synthesis
- Mit AI-generierten Texturen wird die Qualität der Szene erhöht
- DeepBump und Materialize werden verwendet, um PBR-Maps zu erzeugen
-
Volumetric Fog/Clouds
- Es wurden Shader entwickelt, um der Szene Wolken oder Nebel hinzuzufügen
- Mithilfe von LoD-Noise-Lookups wurden verschiedene zusätzliche Funktionen ergänzt
-
Meshes + Geometry
- Es wurden Techniken untersucht, um Meshes zur Laufzeit zu erzeugen und zu verformen
- Prozedural erzeugt werden dabei vor allem Dekorationen oder Hintergrundelemente
-
LoD Terrain
- Terrain wird mit Noise-Funktionen erzeugt, wobei die Auflösung dynamisch an die Entfernung zur Kamera angepasst wird
-
Procedural Mesh Processing + Manipulation Pipeline
- Es wurde eine Pipeline aufgebaut, um Low-Poly-Meshes prozedural zu unterteilen und zu verformen
- Die Behandlung der Normalen erfordert dabei erheblichen Aufwand
-
Future Work
- Geplant ist der Einsatz von Constructive Solid Geometry (CSG), um Meshes zusammenzuführen oder auszuschneiden
- Außerdem ist eine Portierung nach Rust geplant, um ein tieferes Verständnis zu gewinnen
Zusammenfassung von GN⁺
- Dieser Artikel stellt verschiedene Techniken und Tools vor, die für die prozedurale Spieleentwicklung nützlich sind
- Texturierungstechniken wie Triplanar Mapping und Hex Tiling verbessern gleichzeitig Performance und Qualität
- AI-gestützte Texturerzeugung sowie Volumetric Fog/Clouds-Shader erhöhen den Realismus der Szene
- Zukünftige Arbeiten wie Constructive Solid Geometry bieten großes Potenzial für die Verformung von Meshes
- Projekte mit ähnlichen Funktionen sind unter anderem Unitys ProBuilder und Houdini
1 Kommentare
Hacker-News-Kommentar
Habe in der Vergangenheit schon einmal mit prozeduraler Generierung experimentiert
Gute Terrain-Generierung ist nicht einfach
Ein großartiger Beitrag über prozedurale Techniken im Web
Ich habe gemischte Erfahrungen mit dem Einsatz eines Depth Pre-Pass gemacht
Als 3D-Artist war das ein sehr interessanter Artikel