Proses rendering dalam Shadow Fight 3

Proses rendering dalam Shadow Fight 3 - Shadow Fight 3 adalah game aksi RPG yang dikembangkan berdasarkan mesin Unity. Permainan ini dirilis di iOS dan Android pada tahun lalu, dan sejak itu jumlah instalasi telah melebihi 50 juta.

Shadow Fight 3

Jurnalis dan pemain sering memuji visual dari Shadow Fight 3. Dalam artikel ini, saya akan memberi Anda wawasan di bawah permukaan permainan dan mengungkapkan bagaimana kami berhasil mencapai kualitas visual ini.


Untuk menjangkau khalayak yang begitu besar, tim pengembang harus berkinerja baik dalam mengoptimalkan permainan - dan sebagai hasil dari upaya mereka, permainan berjalan pada 60 frame per detik di sebagian besar perangkat modern.


Merender bingkai


Ada banyak faktor yang secara langsung mempengaruhi kinerja permainan dan jumlah frame yang dapat ditampilkan per detik. Salah satu faktor terpenting bagi kami adalah jumlah panggilan draw yang digunakan per satu frame dalam game. Mari kita lihat lebih dekat konsepnya di sebuah situs pokervqq yang sangat menarik. Selama rendering frame game untuk setiap grup objek statis yang berbagi materi yang sama, Unity menggunakan draw draw dan overlay satu sama lain. 


Setiap panggilan undian membutuhkan sumber daya CPU, jadi langkah penting dalam optimasi adalah mengurangi jumlah panggilan ini. Tujuan kami adalah untuk meminimalkan jumlah panggilan hingga 100 per frame game rata-rata.


Langkah pertama rendering di Shadow Fight 3 adalah menggambar bayangan dinamis dari karakter dan efek cahaya untuk elemen bercahaya pada baju besi dan senjata karakter. Kedua proses ini memiliki kekhasan masing-masing dan harus dijelaskan secara rinci. 


Bayangan


Selain kamera utama yang digunakan untuk bingkai utama, proyektor kamera ortografi tambahan dipasang di tempat kejadian, yang dirancang untuk menggambar bayangan dari karakter ke permukaan terpisah yang kita sebut "ShadowReceiver". Kamera ini mengikuti titik tengah antara lawan dan membuat proyeksi mereka ke pesawat berdasarkan posisi mereka saat ini.


Hasilnya berupa tekstur alfa yang menggantikan tekstur yang sama dengan hasil render dari frame sebelumnya dalam bahan dinamis dari objek "ShadowReceiver". Pendekatan ini membantu kita menghindari perlunya menghitung bayangan nyata dan menggambarnya pada semua model di lokasi, yang akan memiliki efek signifikan pada kinerja keseluruhan.


Cahaya


Proses menciptakan efek cahaya pada baju besi dan senjata karakter mirip dengan proses menciptakan bayangan dinamis. "BlurCube" dibuat di sekitar model dengan elemen bercahaya. Efek cahaya diproyeksikan pada setiap frame, berdasarkan informasi yang disimpan dalam saluran biru tekstur RGB dari material objek yang bersinar. Itu berarti saluran biru bertindak sebagai "topeng" untuk memproyeksikan cahaya - Anda akan melihat lebih banyak tentang ini di bawah ini, di bagian tentang materi karakter.


Kemudian blur diterapkan dan informasi disimpan sebagai tekstur alfa, yang menggantikan tekstur dengan hasil untuk frame sebelumnya dalam bahan "BlurCube" dinamis.

Dalam bingkai ini, perhitungan proses cahaya mengambil 15 panggilan draw, ditambah dua lagi untuk mengaburkan efek.


Gambar jerat


Pertama-tama, bagian-bagian dari baju besi dan senjata karakter diberikan. Lalu kita render semua bagian lokasi latar depan, lalu objek latar belakang, dan kemudian latar itu sendiri, yang merupakan pesawat dengan ukuran tekstur 1024x512.



Mereka diikuti oleh sistem partikel, beberapa detail kecil dari latar depan, dan, akhirnya, model yang menggunakan animasi vertex (lebih lanjut tentang ini di bawah). Akhirnya, dalam dua panggilan undian berikutnya, efek bayangan dan cahaya pada game shadow fight 3 yang dihitung dan ditarik sebelumnya diterapkan.