batching statis
Manual menggabungkan jala

batching dinamis

batching dinamis adalah metode draw call batching yang batch bergerak 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
untuk mengurangi draw calls. Dynamic batchingProses 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
bekerja berbeda antara jala dan geometri yang Unity menghasilkan dinamis pada runtime, seperti sistem partikelKomponen yang mensimulasikan entitas fluida seperti cairan, awan dan nyala dengan menghasilkan dan memikat sejumlah besar gambar 2D kecil di tempat kejadian. More info
Lihat di Glossary
. Untuk informasi tentang perbedaan internal antara mesh dan geometri dinamis, lihat batching dinamis untuk jala dan batching dinamis untuk geometri yang dihasilkan secara dinamis.

Note: batching dinamis untuk jala dirancang untuk mengoptimalkan kinerja pada perangkat low-end lama. Pada perangkat keras konsumen modern, batching dinamis kerja dilakukan pada CPU dapat lebih besar dari overhead panggilan menggambar. Ini secara negatif mempengaruhi kinerja. Untuk informasi lebih lanjut, lihat batching dinamis untuk jala.

Persyaratan dan kompatibilitas

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
batching dinamis.

Kompatibilitas pipa Render

Feature Built-in Render Pipeline Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Custom Scriptable Render Pipeline (SRP)
Dynamic Batching Yes Yes No Yes

Menggunakan batching dinamis

Unity selalu menggunakan batching dinamis untuk geometri dinamis seperti Sistem Partikel

Untuk menggunakan batching dinamis untuk jala:

  1. Edit > Project Settings > Player.
  2. Di Other Settings, memungkinkan Dynamic Batching.

Unity secara otomatis batch bergerak jala ke panggilan menggambar yang sama jika mereka memenuhi kriteria yang dijelaskan dalam informasi penggunaan umum.

batching dinamis untuk jala

batching dinamis untuk mesh bekerja dengan mengubah semua simpul ke ruang dunia. pada CPU, daripada pada GPU. Ini berarti batching dinamis hanya optimasi jika pekerjaan transformasi kurang intensif sumber daya daripada melakukan panggilan menggambar.

Persyaratan sumber daya panggilan penarikan tergantung pada banyak faktor, terutama API grafis. Misalnya, pada konsol atau API modern seperti Apple Metal, penarikan overhead umumnya jauh lebih rendah, dan batching dinamis sering tidak menghasilkan keuntungan dalam kinerja. Untuk menentukan apakah itu bermanfaat untuk menggunakan batching dinamis dalam aplikasi Anda, Profil aplikasi Anda dengan dan tanpa batching dinamis.

Unity dapat menggunakan batching dinamis untuk kasir bayangan, bahkan jika bahan mereka berbeda, selama nilai material Kebutuhan Unity untuk umpan bayangan sama. Misalnya, beberapa peti dapat menggunakan bahan yang memiliki tekstur yang berbeda. Meskipun aset material berbeda, perbedaannya tidak relevan untuk daun bayangan dan Unity dapat batch bayangan untuk peti GameObjects dalam langkah render bayangan.

Limitations

Dalam skenario berikut, Unity tidak dapat menggunakan batching dinamis sama sekali atau hanya dapat menerapkan batching dinamis ke tingkat terbatas:

  • Unity tidak dapat menerapkan batching dinamis ke jala yang mengandung lebih dari 900 atribut simpul dan 300 simpul. Ini karena batching dinamis untuk jala memiliki overhead per vertex. Misalnya, jika shaderProgram yang berjalan di GPU. More info
    Lihat di Glossary
    Anda menggunakan posisi simpul, simpul normal, dan satu UV, maka Unity dapat batch hingga 300 simpul. Namun, jika naungan Anda menggunakan posisi simpul, vertex normal, UV0, UV1, dan tangen simpul, maka Unity hanya bisa batch 180 vertices.
  • Jika GameObjects menggunakan instance bahan yang berbeda, Unity tidak dapat mengedepankan mereka bersama, bahkan jika mereka pada dasarnya sama. Satu-satunya pengecualian untuk ini adalah rendering bayangan.
  • GameObjects dengan lightmaps memiliki parameter renderer tambahan. Ini berarti bahwa, jika Anda ingin batch lightmapped GameObjects, mereka harus menunjuk ke lokasi lightmapTekstur pra-render yang mengandung efek sumber cahaya pada objek statis di tempat kejadian. Lightmaps dilalui atas geometri adegan untuk menciptakan efek pencahayaan. More info
    Lihat di Glossary
    yang sama.
  • Unity tidak dapat sepenuhnya menerapkan batching dinamis ke GameObjects yang menggunakan warna multi-pass.
    • Hampir semua naungan Unity mendukung beberapa lampu di forward renderingSebuah jalur rendering yang membuat setiap objek dalam satu atau lebih melewati, tergantung pada lampu yang mempengaruhi objek. Lampu sendiri juga diperlakukan berbeda dengan Rendering Maju, tergantung pada pengaturan dan intensitas mereka. More info
      Lihat di Glossary
      . Untuk mencapai ini, mereka memproses lulus render tambahan untuk setiap cahaya. Satu-satunya batch lulus render pertama. Ini tidak dapat batch panggilan menggambar untuk lampu per-piksel tambahan.
    • Legacy Deferred rendering path tidak mendukung batching dinamis karena menarik GameObjects dalam dua melewati render. Pass pertama adalah pre-pass cahaya dan lulus kedua render GameObjects.

batching dinamis untuk geometri yang dihasilkan secara dinamis

Para renderer berikut secara dinamis menghasilkan geometri, seperti partikel dan garis, bahwa Anda dapat mengoptimalkan menggunakan batching dinamis:

  • Sistem Partikel Built-in
  • Garis RenderersKomponen yang mengambil array dari dua atau lebih poin di ruang 3D dan menarik garis lurus antara masing-masing. Anda dapat menggunakan komponen Renderer Baris tunggal untuk menggambar apa pun dari garis lurus sederhana ke spiral yang kompleks. More info
    Lihat di Glossary
  • Trail RenderersEfek visual yang memungkinkan Anda untuk membuat jejak di balik GameObjects di Adegan karena mereka bergerak. More info
    Lihat di Glossary

batching dinamis untuk geometri yang dihasilkan secara dinamis bekerja secara berbeda daripada yang dilakukan untuk jala:

  1. Untuk setiap renderer, Unity membangun semua konten ber batch dinamis menjadi satu penyangga simpul besar.
  2. renderer mengatur state material untuk batch.
  3. Unity kemudian mengikat penyangga simpul ke GPU.
  4. Untuk setiap Renderer dalam batch, Unity memperbarui offset di penyangga simpul dan mengirimkan panggilan menggambar baru.

Pendekatan ini mirip dengan bagaimana Unity mengirimkan panggilan untuk batching statisTeknik 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
.

batching statis
Manual menggabungkan jala