Alat dan Teknik Pilihan Saya untuk Pengembangan Game Prosedural
(cprimozic.net)-
Ringkasan proyek
- Selama beberapa tahun, saya telah mengerjakan adegan dan level 3D yang berjalan di browser
- Awalnya dimulai sebagai demo terpisah, tetapi secara bertahap berkembang menjadi proyek yang saling terhubung seperti game
- Menggunakan teknik prosedural dan generatif untuk mengimplementasikan elemen tertentu
-
Shaders + Textures
- Sebagian besar tekstur dirancang tanpa sambungan sehingga pola tidak terlihat bahkan di area yang luas
- Membuat shader kustom di Three.JS untuk menyediakan fungsi tambahan
-
Triplanar Mapping
- Dapat menerapkan tekstur ke mesh tanpa UV map, sehingga berguna untuk terrain yang dihasilkan secara prosedural
- Dapat diimplementasikan dengan sederhana dan dapat diterapkan ke berbagai mesh
- Menggunakan fungsi
pow()untuk menyesuaikan bobot guna meningkatkan kualitas dan mengoptimalkan performa
-
Hex Tiling
- Algoritme untuk menyembunyikan pengulangan tekstur tanpa sambungan
- Di-porting sebagai pustaka mandiri yang dapat dengan mudah diintegrasikan ke proyek Three.JS
- Memerlukan UV map dan memiliki overhead performa yang besar
-
Depth Pre-Pass
- Merender adegan dua kali untuk mencatat kedalaman piksel demi meningkatkan performa
- Dapat meningkatkan performa lebih dari 30% pada adegan dengan overdraw tinggi
-
AI-Powered PBR Texture Synthesis
- Menggunakan tekstur yang dihasilkan AI untuk meningkatkan kualitas adegan
- Menggunakan DeepBump dan Materialize untuk membuat peta PBR
-
Volumetric Fog/Clouds
- Mengembangkan shader yang menambahkan awan atau kabut ke dalam adegan
- Menggunakan lookup noise LoD untuk menambahkan berbagai fungsi
-
Meshes + Geometry
- Meneliti teknik untuk membuat dan mengubah mesh saat runtime
- Terutama menghasilkan dekorasi atau elemen latar belakang secara prosedural
-
LoD Terrain
- Menghasilkan terrain menggunakan fungsi noise, dan menyesuaikan resolusi secara dinamis berdasarkan jarak ke kamera
-
Procedural Mesh Processing + Manipulation Pipeline
- Membangun pipeline untuk menyubdivisi dan mengubah mesh low-poly secara prosedural
- Penanganan normal membutuhkan banyak usaha
-
Future Work
- Berencana menggunakan Constructive Solid Geometry(CSG) untuk menggabungkan atau memotong mesh
- Menargetkan porting ke Rust untuk pemahaman yang lebih baik
Ringkasan GN⁺
- Artikel ini memperkenalkan berbagai teknik dan alat yang berguna untuk pengembangan game prosedural
- Teknik texturing seperti Triplanar Mapping dan Hex Tiling meningkatkan performa dan kualitas secara bersamaan
- Pembuatan tekstur berbasis AI dan shader Volumetric Fog/Clouds meningkatkan realisme adegan
- Pekerjaan mendatang seperti Constructive Solid Geometry memiliki potensi besar untuk transformasi mesh
- Proyek dengan fungsi serupa mencakup Unity ProBuilder dan Houdini
1 komentar
Komentar Hacker News
Pernah mencoba procedural generation di masa lalu
Pembuatan terrain yang bagus tidaklah sederhana
Ini tulisan yang sangat bagus tentang teknik prosedural di web
Memiliki pengalaman yang campur aduk saat menggunakan depth prepass
Sebagai artis 3D, ini artikel yang sangat menarik