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.
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:
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.
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.