AMD’den Işın İzlemede Büyük Bellek Tasarrufu
AMD, karmaşık ve hareketli sahnelerde ışın izleme maliyetini ciddi ölçüde azaltabilecek yeni bir teknik geliştirdi. “Tetrahedral cage” adı verilen yöntem, geleneksel sistemlerde 80 GB’a kadar çıkabilen BVH bellek ihtiyacını yaklaşık 1,7 GB seviyesine indiriyor. AMD Fellow Holger Gruen tarafından GPUOpen’da yayımlanan çalışmada yeni teknik, Radeon RX 9070 XT üzerinde test edildi. Yaklaşık 25 bin bağımsız […]
AMD, karmaşık ve hareketli sahnelerde ışın izleme maliyetini ciddi ölçüde azaltabilecek yeni bir teknik geliştirdi. “Tetrahedral cage” adı verilen yöntem, geleneksel sistemlerde 80 GB’a kadar çıkabilen BVH bellek ihtiyacını yaklaşık 1,7 GB seviyesine indiriyor.
AMD Fellow Holger Gruen tarafından GPUOpen’da yayımlanan çalışmada yeni teknik, Radeon RX 9070 XT üzerinde test edildi. Yaklaşık 25 bin bağımsız bitkinin bulunduğu sahnede, LOD seçiminin ardından kare başına yaklaşık 500 milyon animasyonlu üçgen ışın izleme ile işlendi. Demo, 1080p çözünürlükte 60 FPS’nin üzerinde çalıştı.

Tetrahedral Cage Nasıl Çalışıyor?
Geleneksel ışın izleme sistemlerinde hareket eden veya şekli değişen nesnelerin geometrisi sürekli güncelleniyor. Bu değişiklikler nedeniyle ışınların nesnelerle nerede kesişeceğini hesaplamaya yardımcı olan BVH yapılarının da her karede yeniden oluşturulması veya güncellenmesi gerekiyor.
Yoğun geometrili sahnelerde bu süreç hem ciddi miktarda bellek tüketiyor hem de GPU üzerinde önemli bir işlem yükü oluşturuyor.
AMD’nin tetrahedral cage yaklaşımı ise yoğun bir modeli daha basit, deforme edilebilir bir kafesin içine yerleştiriyor. Animasyon sırasında milyonlarca üçgenden oluşan asıl geometriyi değiştirmek yerine bu kafes hareket ettiriliyor.
Işınlar kesişim hesabı yapılmadan önce modelin statik koordinat sistemine dönüştürülüyor. Böylece yoğun geometri ve ona ait BVH verileri sabit tutulabiliyor. AMD’ye göre animasyon maliyeti de modeldeki toplam üçgen sayısı yerine kafesin karmaşıklığına bağlı hale geliyor.
Bellek Kullanımı Ne Kadar Azaldı?
AMD’nin gösterimindeki en dikkat çekici fark BVH bellek kullanımında ortaya çıkıyor.
Aynı sahnedeki bağımsız bitkiler geleneksel yoğun üçgen BLAS yapılarıyla işlendiğinde BVH için 80 GB’a kadar bellek gerekebiliyor. Tetrahedral cage tekniğinde ise bu miktar yaklaşık 1,7 GB seviyesinde kalıyor.
Bu da BVH belleğinde yaklaşık 47 kat azalma anlamına geliyor.
Buradaki 80 GB rakamı RX 9070 XT’nin gerçekten kullandığı toplam ekran kartı belleğini göstermiyor. AMD’nin hesaplamasına göre geleneksel yöntemle aynı sahnenin BVH verilerinin tutulabilmesi için ihtiyaç duyulacak miktarı ifade ediyor. RX 9070 XT ise 16 GB VRAM’e sahip.

BVH Güncelleme Süresi Ne Kadar Düştü?
Tetrahedral cage tekniği yalnızca bellek kullanımını azaltmıyor. BVH güncelleme süresinde de büyük bir fark ortaya çıkıyor.
AMD’nin verilerine göre geleneksel yöntemde aynı sahnenin BVH yapılarını güncellemek kare başına 300 milisaniyeden fazla sürebiliyor. Yeni yöntemde bu süre yaklaşık 3,3 milisaniyeye düşüyor.
Bu sonuç BVH güncelleme maliyetinde 90 katın üzerinde iyileşme anlamına geliyor.
Test sahnesinde bitkiler en yüksek ayrıntı seviyesinde yaklaşık 2,8 milyar üçgenden oluşuyor. LOD sistemi devreye girdiğinde ise her karede işlenen animasyonlu üçgen sayısı yaklaşık 500 milyona düşüyor. Birincil ve gölge ışınlarının kullanıldığı sahne Radeon RX 9070 XT üzerinde 1080p çözünürlükte 60 FPS’nin üzerinde çalışıyor.
Yeni Teknik Her Oyunda Kullanılabilir Mi?
Tetrahedral cage tekniğinin önemli avantajları bulunmasına rağmen her animasyon türü için ideal olması beklenmiyor.
AMD özellikle bitki örtüsü, çimenler ve çok sayıda bağımsız hareketli nesnenin bulunduğu sahneleri yöntemin güçlü kullanım alanları arasında gösteriyor. Kalabalıklar ve uzaktaki karakterler de benzer biçimde bu yaklaşımdan yararlanabilir.
Bunun karşılığında geliştiriciler model üzerindeki her bir tepe noktasını bağımsız olarak kontrol edemiyor. Son derece hassas deformasyon isteyen karakter animasyonlarında veya model topolojisinin değiştiği durumlarda geleneksel yöntemler daha uygun kalabilir.
Tetrahedral Cage Oyunlara Gelecek Mi?
AMD’nin çalışması şu anda doğrudan Radeon sürücülerinde veya ticari oyunlarda kullanılabilen yeni bir özellik değil. Teknik şimdilik araştırma ve geliştirici gösterimi aşamasında bulunuyor.
Ancak AMD yöntemi gerçek oyun motorlarına taşımak için çalışmalarını sürdürüyor. Şirket, DirectX Raytracing ile kullanılabilecek örneklerin yanı sıra tetrahedral cage oluşturmayı kolaylaştıran header-only bir C++ kütüphanesi üzerinde çalıştığını açıkladı.
Tekniğin oyunlara uyarlanması halinde özellikle yoğun bitki örtüsü, kalabalıklar ve yüz milyonlarca hareketli üçgen içeren sahnelerde ışın izleme maliyetinin ciddi biçimde azaltılması mümkün olabilir.