Com2uS daha iyi grafikler için Vulkan'ı kullanıyor

Com2uS Chronicles'tan oyun başlığı logosunun ekran görüntüsü.

Summoners War: Chronicles US(WW) ve KR, Android'de oluşturma işlemi için özel olarak Vulkan'dan yararlanıyor ve %30'a varan performans artışı elde ediyor.

Vulkan, cihaz grafik donanımı ile oyununuz arasındaki soyutlamayı en aza indirmek için tasarlanmış modern, platformlar arası bir 3D grafik API'sidir. Vulkan, OpenGL ES'ye kıyasla daha düşük CPU ek yüküne sahiptir ve Vulkan daha geniş bir özellik yelpazesi sunar.

Şekil 1. Oyun içi ekran görüntüsü.
Şekil 2. Oyun içi video.

Oluşturma özellikleri

Com2uS, Summoners War: Chronicles için aşağıdakiler gibi gelişmiş oluşturma özellikleri geliştirdi:

  • Görünümde eşzamanlı olarak önceden oluşturma ışığının azaltıldığı ve on altı adede kadar aktif ışığın bulunduğu özel ertelenmiş oluşturma sistemi
  • Aynı anda birçok örgü, malzeme ve doku çizmek için dolaylı oluşturma oluşturma yöntemi (Clay olarak adlandırılır)
  • Önceden oluşturma görevleri için bilişim gölgelendiricilerinin kapsamlı kullanımı
  • Kamera hareketine, grafik seçeneklerine ve çalışma zamanı performansına göre etkin gölge oluşturma ve işleme sonrası efektlerini dinamik olarak ayarlama yeteneği

Mobil donanım konaklama

Summoners War: Chronicles, Android cihazlar, kişisel bilgisayarlar ve özel oyun konsolları için aynı oluşturucuyu kullanır. Com2uS, mobil donanımda optimum performans elde etmek için çizim derinliği ve yoğunluğu dahil oluşturma ayarlarını düzenledi. Com2uS, Android 11 (API düzeyi 30) ve önceki sürümleri çalıştıran belirli cihazlara uyum sağlamak için bazı gölgelendiricilerin alternatif sürümlerini oluşturdu ve daha düşük örnek sayıları kullandı. Summoners War: Chronicles de cihaz termal koşullarına göre grafik seçeneklerini dinamik olarak ayarlamak için Android'de uyarlanabilir performans özellikleri kullanır.

Yalnızca Vulkan gerekçesi

Com2uS, çeşitli nedenlerden dolayı Vulkan'ı yalnızca Summoners War: Chronicles için kullandı:

  • Minimum cihaz gereksinimleri, Vulkan desteği olmayan eski ve daha az güçlü cihazları hariç tuttu
  • Unity motorunun özelleştirilmesi Yerleşik Oluşturma Ardışık Düzeni (BiRP) gerekli özellikleri yalnızca oyunun Vulkan arka ucunda kullanılabilir
  • İşlem gölgelendirici çıktısı ve gölgelendirici depolama arabellek nesneleri (SSBO'lar) kullanan oluşturma özellikleri, Vulkan'da yapılabilir ancak OpenGL ES'de kullanılamaz

İşlem iş yükleri

Summoners War: Chronicles, oluşturma için veri oluşturma konusunda önemli düzeyde bilgi işlem gölgelendirme çalışmaları gerçekleştirir. İşlem gölgelendiriciler şu amaçlarla kullanılır:

  • Nesne yoklama
  • Çarpışma denetimi
  • Animasyon görevleri
  • Dolaylı oluşturma verileri oluşturma

Ortaya çıkan işlem verileri Unity motoru RWBuffer nesnelerine yazılır. Summoners War: Chronicles, en iyi performansı elde etmek için tüm işlem işlerini tek bir dağıtım ile yürütür. Bu da aynı anda birden fazla RWBuffer kullanılmasını gerektirir. Unity BiRP OpenGL ES arka ucu, tek seferde yalnızca bir RWBuffer kullanımını desteklediğinden bu yaklaşım yalnızca Vulkan kullanılarak gerçekleştirilebilirdi.

Oluşturma için oluşturulan veri kümeleri, genellikle tek tip arabellek nesneleri (UBO'lar) için cihaz boyutu sınırlarından daha büyüktür. Summoners War: Chronicles, bunun yerine daha yüksek kapasite sınırlarına sahip olan gölgelendirici depolama arabellek nesnelerini (SSBO'lar) kullanır. Ancak SSBO'ları köşe sahnesi işlemlerine bağlamak için salt okunur SSBO desteği gerekir. OpenGL ES yalnızca okuma-yazma SSBO'larını desteklerken Vulkan SSBO'ları salt okunur olarak işaretleyebilir.

Kil ile dolaylı örnekli oluşturma

Com2uS, Summoners War: Chronicles için birden fazla malzemeyi, örgüleri ve dokuları tek bir çizim çağrısında gruplandırmak için bir yöntem geliştirdi. Com2uS, bu sistemi Klay olarak adlandırır. Clay, çizim çağrılarını önemli ölçüde azaltarak oyun performansını% 30 artırdı.

Kil, toplama ve çarpışma aşamasında, uyumlu, görünür oluşturulabilir nesnelerin bir listesini oluşturarak başlar. Clay daha sonra tanımlanan her nesne için oluşturma bilgilerini SSBO'larda oluşturur. Bu işlem, Unity oluşturucu DrawMeshInstancedIndirect işlevi kullanılarak dolaylı örnekli oluşturma kullanımını etkinleştiren hesaplama gölgelendirmeleriyle gerçekleştirilir. Dolaylı oluşturma ile örnek bilgileri ve örnek sayısı parametreleri doğrudan GPU'da oluşturulur. Clay, nesneleri çizerken geleneksel bir nesne ağını bağlamak yerine resimdeki gibi bir koni ağı bağlar:

Şekil 3. Koni ağ.

Ardından Clay, işlem gölgelendiricileri tarafından oluşturulan köşe dönüşüm verilerinin bağlı bir SSBO'sunu kullanarak köşe gölgelendiricisindeki koni ağını dönüştürür. SSBO'ları tepe noktası aşamasına bağlamak için Vulkan kullanılması gerekir. Kil, tek bir nesneyi oluşturmak için birden fazla dönüştürülmüş koni kullanabilir. Nesnenin karmaşıklığı, koni sayısını belirler.

Şekil 4. Koni örgünün ağaca dönüştürülmesi.

Nesnelerin malzeme verileri, işlem gölgelendiricileri tarafından oluşturulan başka bir arabelleğe aktarılır. Tampon, parça gölgelendiricisine bağlıdır. Çizilen nesnelerin dokuları bir doku dizisinde yapılandırılır. Bir nesnenin dokularına ilişkin dizi dizinleri, nesnenin malzeme verilerine dahil edilir. İdeal koşullarda Clay, en fazla yedi çekim çağrısıyla oluşturulabilir:

  • Statik nesneler
  • Animasyonlu nesneler
  • Gölgeler (dört yineleme)
  • Yansımalar

Birlik ve Vulkan

Summoners War: Chronicles, Unity oyun motoru ve Vulkan grafik API'sinin güçlü kombinasyonunun, geliştiricilerin Android cihazlara konsol kalitesinde gelişmiş grafikler getirmesini sağladığını gösteriyor.