4 poin oleh GN⁺ 2025-01-05 | 1 komentar | Bagikan ke WhatsApp

Voxel Space

Demo Web: Mesin Voxel Space

Sejarah

  • Pada 1992, CPU berjalan 1000 kali lebih lambat daripada sekarang, dan akselerasi GPU belum dikenal luas atau sangat mahal.
  • Game 3D hanya dihitung di CPU, dan mesin render hanya merender poligon berwarna tunggal.
  • Pada 1991 dirilis game Gunship 2000 dari MicroProse dan pada 1992 game Comanche dari NovaLogic.
  • Comanche menawarkan grafis yang mengagumkan untuk zamannya, menampilkan tekstur, shading, bayangan, dan lain-lain.

Algoritma rendering

  • Comanche menggunakan teknologi bernama Voxel Space, yang berdasarkan pada ide serupa dengan ray casting.
  • Mesin Voxel Space adalah mesin 2.5D, jadi tidak menyediakan semua kebebasan yang biasanya ditawarkan oleh mesin 3D.
Peta ketinggian dan peta warna
  • Cara paling mudah untuk merepresentasikan terrain adalah dengan menggunakan peta ketinggian dan peta warna.
  • Pada game Comanche digunakan peta ketinggian dan peta warna berukuran 1 byte beresolusi 1024 * 1024.
  • Peta-peta ini bersifat periodik sehingga tidak dapat merepresentasikan struktur yang kompleks, tetapi peta warna sudah mencakup shading dan bayangan, sehingga tidak perlu menghitung pencahayaan saat proses rendering.
Algoritma dasar
  • Algoritma rendering mesin 3D ini sangat sederhana.
  • Mesin Voxel Space merasterisasi peta ketinggian dan warna untuk menggambar garis-garis vertikal.
  • Membersihkan layar, lalu merender dari belakang ke depan untuk menjamin occlusion.
  • Menentukan baris pada peta sesuai dengan jarak optik dari pengamat.
  • Merasterisasi baris agar sesuai dengan jumlah kolom layar.
  • Mengambil ketinggian dan warna untuk segmen garis pada peta 2D.
  • Melakukan proyeksi perspektif pada koordinat ketinggian.
  • Menggambar garis vertikal dengan ketinggian hasil proyeksi perspektif dan warna yang sesuai.
Menambahkan rotasi
  • Dengan algoritma di atas, Anda hanya bisa melihat ke utara.
  • Untuk melihat sudut lain, perlu menulis beberapa baris kode untuk memutar koordinat.
Peningkatan performa
  • Terdapat beberapa trik untuk meningkatkan performa.
  • Alih-alih merender dari belakang ke depan, Anda juga bisa merender dari depan ke belakang.
  • Perlu y-buffer tambahan agar occlusion terjamin.
  • Menyesuaikan tingkat detail: menampilkan lebih banyak detail di dekat kamera dan lebih sedikit di kejauhan.

Tautan

  • Halaman demo proyek web
  • Pengenalan mesin terrain Voxel
  • Situs web pribadi

Peta

  • Warna, ketinggian

Lisensi

  • Bagian perangkat lunak berada di bawah lisensi MIT.
  • Teknologi Voxel Space mungkin masih dipatenkan di beberapa negara.
  • Peta warna dan peta ketinggian bukan bagian dari lisensi karena berasal dari rekayasa balik game Comanche.

1 komentar

 
GN⁺ 2025-01-05
Komentar Hacker News
  • Aku merindukan zaman ketika algoritma yang canggih dan elegan menghadirkan pengalaman yang terasa ajaib. Pada masa sumber daya perangkat keras terbatas, pengembang memajukan permainan dengan teknik dan kreativitas baru.

    • Saat ini, platform fantasi seperti PICO-8 terasa lebih menarik daripada permainan repetitif dari studio AAA.
    • Algoritme seperti VoxelSpace menunjukkan cara merender terrain dengan jumlah kode yang sangat sedikit.
  • Video yang terkait dengan program bernama mars.com terasa menarik.

    • Informasi terkait bisa ditemukan di situs Pouet.
  • Metode rendering ini memang menarik, tetapi sulit untuk diklasifikasikan sebagai voxel karena tidak bisa merender volume acak. Ini sebenarnya implementasi yang rapi dari renderer heightmap.

  • Mungkin saja diskusi tahun 2020 atau 2017 masuk ke dalam judul. Pada 2021 juga ada diskusi tentang repositori yang sama.

  • Saat pertama kali belajar pemrograman, aku ingat pernah membuat program di QBasic untuk membuat heightmap terrain dan merendernya dengan gaya isometrik. Itu salah satu hal yang membuatku terus melanjutkan pemrograman.

  • Aku membuat game dengan teknik ini menggunakan Adventure Game Studio. Tidak dioptimalkan untuk versi lama mesin, tetapi akan kubarui suatu hari nanti.

  • Sebagian besar game modern punya gunung-gunung yang berlubang, tapi metode ini membuat gunung tampak lebih padat.

  • Aku ingat saat pertama kali memainkan game Comanche. Rasanya seperti sesuatu yang datang dari masa depan, seolah langsung dari film.

  • Proyek software renderer itu menyenangkan dan cocok untuk proyek akhir pekan. Aku pernah mengimplementasikan algoritme serupa sebelumnya, tapi implementasi saat ini jauh lebih cepat dan jauh lebih sederhana.

  • Aku ingin hidup di garis waktu alternatif di mana GPU itu berbasis voxel.