batching statis adalah metode draw call batching yang menggabungkan jala yang tidak bergerak untuk mengurangi draw calls. Ini mengubah mesh gabungan menjadi ruang dunia dan membangun satu simpul bersama dan penyangga indeks untuk mereka. Kemudian, untuk mesh yang terlihat, Unity melakukan serangkaian panggilan penarikan sederhana, dengan hampir tidak ada perubahan negara antara masing-masing. Static batchingTeknik Unity menggunakan untuk menggambar GameObjects di layar yang menggabungkan static (non-moving) GameObjects ke Big Meshes, dan render mereka dengan cara yang lebih cepat. More info
Lihat di Glossary tidak mengurangi jumlah panggilan penarikan, tetapi alih-alih mengurangi jumlah perubahan state render antara mereka.
batching statis lebih efisien daripada batching dinamisProses Unity otomatis yang mencoba untuk membuat beberapa jala seolah-olah mereka adalah satu mesh untuk kinerja grafis yang dioptimalkan. Teknik mengubah semua simpul GameObject pada CPU dan kelompok banyak simpul serupa bersama. More info
Lihat di Glossary karena batching statis tidak mengubah simpul pada CPU. Untuk informasi lebih lanjut tentang implikasi kinerja untuk batching statis, lihat Performance implications.
Bagian ini mencakup informasi tentang kompatibilitas render pipelineRangkaian operasi yang mengambil isi dari Adegan, dan menampilkannya di layar. Unity memungkinkan Anda memilih dari pipa render yang dibangun sebelumnya, atau menulis sendiri. More info
Lihat di Glossary statis batching.
Feature | Built-in Render Pipeline | Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | Custom Scriptable Render Pipeline (SRP) |
---|---|---|---|---|
Static Batching | Yes | Yes | Yes | Yes |
Unity dapat melakukan batching statis pada waktu build dan pada runtime. Sebagai aturan umum, jika GameObjectsObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary ada dalam sceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary sebelum Anda membangun aplikasi Anda, gunakan Editor untuk batch GameObjects Anda pada waktu membangun. Jika Anda membuat GameObjects dan jala mereka pada runtime, gunakan API.
Ketika Anda menggunakan API runtime, Anda dapat mengubah sifat transformasi akar batch statis. Ini berarti bahwa Anda dapat bergerak, memutar, atau mengukur seluruh kombinasi jala yang membuat batch statis. Anda tidak dapat mengubah sifat transformasi dari jala individu.
Untuk menggunakan batching statis untuk satu set GameObjects, GameObjects harus memenuhi syarat untuk batching statis. Selain kriteria yang dijelaskan dalam informasi penggunaan umum, pastikan bahwa:
DisableBatching
yang ditetapkan untuk benar.Untuk informasi tentang implikasi kinerja untuk batching statis, lihat Performance implications.
Anda dapat mengaktifkan batching statis pada waktu build di Editor.
Untuk melakukan batching statis pada waktu membangun:
Unity secara otomatis mengedepankan jala statis tertentu ke panggilan penarikan yang sama jika mereka memenuhi kriteria yang dijelaskan dalam informasi penggunaan umum.
Note: Jika Anda melakukan batching statis pada waktu membangun, Unity tidak menggunakan sumber daya CPU kapan saja untuk menghasilkan data mesh untuk batch statis.
Untuk batch static meshes pada runtime, Unity menyediakan kelas StaticBatchingUtility. Metode static StatisBatchingUtility.Combine menggabungkan GameObjects yang Anda lewatkan dan menyiapkannya untuk batching statis. Ini sangat berguna untuk jala yang Anda hasilkan pada waktu yang runtime.
Tidak seperti batching statis pada waktu membangun, batching pada runtime tidak memerlukan Anda untuk mengaktifkan Pengaturan Pemain Static Batching. Untuk informasi tentang cara menggunakan API ini, lihat StaticBatchingUtility.
Menggunakan batching statis memerlukan memori CPU tambahan untuk menyimpan geometri gabungan. Jika beberapa GameObjects menggunakan mesh yang sama, Unity membuat salinan mesh untuk setiap GameObject, dan masukkan setiap salinan ke dalam mesh gabungan. Ini berarti bahwa geometri yang sama muncul dalam mesh gabungan beberapa kali. Unity melakukan ini terlepas dari apakah Anda menggunakan editor atau API untuk menyiapkan GameObjects untuk batching statis. Jika Anda ingin menyimpan jejak memori yang lebih kecil, Anda mungkin harus mengorbankan kinerja rendering dan menghindari batching statis untuk beberapa GameObjects. Misalnya, menandai pohon sebagai statis di lingkungan hutan padat dapat memiliki dampak memori yang serius.
Note: Ada batasan jumlah vertik batch statis dapat mencakup. Setiap batch statis dapat mencakup hingga 64000 vertik. Jika ada lebih, Unity menciptakan batch lain.