Voxel Grafikleri Performans Cezası Değildir: Tasarım Seçimi Meselesi

Anket

Voxel tabanlı bir oyun geliştirirken hangi optimizasyonu önce uygulardın?

0 oy

Voxel grafikleri performans açısından ağır bir yük taşır diye yaygın inanış var. Oysa gerçek daha nüanslı: yanlış yapıldığında pahalı, doğru yapıldığında piksele dayalı grafikler kadar verimli olabilir.

Küpçük blokların (voxel) avantajı tasarım hızı ve deformasyon. Bir voxel dünyasını dinamik olarak değiştirebilirsin; piksel ızgarası bunu çok daha zor kılar. Minecraft'ın başarısı bu esnekliğin kanıtı. Ancak ham voxel render etme, her blok için ayrı geometri üretirse, çok fazla vertex ve draw call oluşturur. sorun burası.

Çözüm greedy meshing adlı teknik. Yan yana aynı türdeki voxelleri büyük bir yüzeye birleştirerek vertex sayısını 80-90 oranında azaltabilirsin. GPU'ya iletilecek veri dramatik düşer. Ayrıca frustum culling (ekran dışı blokları render etmeme) ve LOD (uzaktan nesne detayını azaltma) standart optimizasyonlar voxel motorlarda da işe yarar.

Mobil oyunlarda voxel kullanan başarılı örnekler var. Bunlar sadece voxel seçip geçmemişler; chunk tabanlı yükleme, agresif occlusion culling (kapalı alanları render etmeme) ve düşük çözünürlükte shadow mapping kullanmışlar. Sonuç: 60 FPS, düşük RAM kullanımı.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Asıl maliyet voxel yapısından değil, neyi render etmeyi seçtiğinden gelir. Pikselli bir oyun da her frame'de binlerce nesne çizerse yavaş olur. Voxel sistemi temiz tutarsan, mesela chunk başına maksimum voxel sayısı belirlersin, occluded geometry'yi silersin, hiç sorun olmaz.

Bu demek değil ki voxel serbest. Mesh oluşturma (meshing) CPU'da zaman alır; chunk oluştururken veya değiştirirken lag yaşayabilirsin. Bunu async yap, işçi thread'leri kullan, problemi çözüldü. Raytracing gibi advanced teknikler voxel dünyalarda CPU-intensive olabilir, ama rasterization (standart render) yöntemiyle voxel pikselle rekabet eder.

Sonuç: Voxel grafikler performans açısından pahalı değildir. Voxel sistemi yanlış tasarlamak pahalıdır. Mesh optimizasyonu, culling ve async processing ile indie geliştiriciler bile 60 FPS voxel oyunları yapabiliyor. Seçim teknolojiye değil, kaç saati optimizasyona ayıracağına bağlı.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz