Menciptakan naungan yang mendukung sikap GPU
batching statis

Gambar batching panggilan

Gambar batching panggilan adalah metode draw call optimization yang menggabungkan mesh sehingga Unity dapat membuat mereka dalam panggilan yang lebih sedikit. Unity menyediakan dua metode batching panggilan bawaan:

  • batching statis: Untuk static 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
    , Unity menggabungkan mereka dan membuat mereka bersama.
  • batching dinamis: Untuk jaring yang cukup kecil, ini mengubah simpul mereka pada CPU, kelompok simpul bersamaan, dan membuat mereka dalam satu panggilan menggambar.

Unity built-in menggambar batching panggilan memiliki beberapa keunggulan dibandingkan jaring merging secara manual; sebagian besar tidak bisa, Unity masih bisa kusam jala secara individual. Namun, itu juga memiliki beberapa sisi bawah; batching statis memori dan penyimpanan overhead, dan batching dinamis mengeluarkan beberapa overhead CPU.

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
dari metode batching panggilan bawaan Unity.

Kompatibilitas pipa Render

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
Dynamic Batching Yes Yes No Yes

Menggunakan batching panggilan menarik

Informasi penggunaan berikut relevan untuk batching statis dan dinamis. Untuk informasi spesifik untuk setiap metode batching panggilan, seperti cara mengaktifkan dan menggunakan setiap metode, lihat batching statis dan batching dinamis.

Mesh RenderersKomponen mesh yang mengambil geometri dari Filter Mesh dan render di posisi yang ditentukan oleh komponen Transform objek. 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
, 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
, 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
, dan Sprite RenderersKomponen yang memungkinkan Anda menampilkan gambar sebagai Sprites untuk digunakan di kedua adegan 2D dan 3D. More info
Lihat di Glossary
didukung untuk menggambar batching panggilan. Jenis lain dari rendering komponen, termasuk Skinned MeshGrafik utama primitif Unity. Mesh membuat sebagian besar dunia 3D Anda. Unity mendukung mesh poligon triangulat atau Quadrangulasi. Nurbs, Nurms, permukaan Subdiv harus dikonversi ke poligon. More info
Lihat di Glossary
Renderers Cloth, tidak didukung. Unity hanya batch Renderers dengan Renderers lain dari jenis yang sama; misalnya, Mesh Renderers dengan Mesh Renderers.

Unity batch menarik panggilan GameObjects yang menggunakan bahan yang sama. Ini berarti untuk mendapatkan hasil terbaik dari menggambar batching panggilan, berbagi bahan di antara sebanyak GameObjects mungkin. Jika Anda memiliki dua aset bahan yang identik dari tekstur mereka, Anda dapat menggabungkan tekstur menjadi satu tekstur yang lebih besar. Proses ini disebut tekstur alasing. Untuk informasi lebih lanjut, lihat Wikipedia artikel pada tekstur dilasing. Ketika tekstur berada di atlas yang sama, Anda dapat menggunakan aset bahan tunggal.

Di Pipeline Render Built-in, Anda dapat menggunakan BahanPropertyBlock untuk mengubah sifat material tanpa melanggar batching panggilan. CPU masih perlu membuat beberapa perubahan render-state, tetapi menggunakan MaterialPropertyBlock lebih cepat daripada menggunakan beberapa bahan. Jika proyek Anda menggunakan Pipeline Render Scriptable, jangan gunakan MaterialPropertyBlock karena mereka menghapus kompatibilitas SRP Batcher untuk materi.

Transparan shadersProgram yang berjalan di GPU. More info
Lihat di Glossary
sering mengharuskan Unity untuk membuat jala dalam urutan ke depan. Untuk batch mesh transparan, Unity pertama perintah mereka dari belakang ke depan dan kemudian mencoba untuk batch mereka. Karena Unity harus membuat jala kembali ke depan, sering tidak bisa batch sebanyak banyak jaring transparan sebagai jaring buram.

Unity tidak dapat menerapkan batching dinamis ke GameObjects yang mengandung cermin dalam Transform componentKomponen Transform menentukan Posisi, Rotasi, dan Skala setiap objek di tempat kejadian. Setiap GameObject memiliki Transform. More info
Lihat di Glossary
mereka. Sebagai contoh, jika salah satu GameObject memiliki skala 1 dan GameObject lain memiliki skala –1, Unity tidak dapat batch bersama.

Jika Anda tidak dapat menggunakan batching panggilan, menggabungkan mesh secara manual yang dekat satu sama lain dapat menjadi alternatif yang baik. Untuk informasi lebih lanjut tentang menggabungkan mesh, lihat Combining meshes.

Warning: Ketika Anda mengakses properti bahan bersama dari skrip C#, pastikan untuk menggunakan Renderer.sharedMaterial dan tidak Renderer.material. Renderer.material menciptakan salinan materi dan menetapkan salinan kembali ke Renderer. Ini berhenti Unity dari batching panggilan penarikan untuk Renderer.


  • 2017–10–26 Login

  • Menambahkan catatan pada batching dinamis yang tidak kompatibel dengan pekerjaan grafis di 2017. 1 Artikel

Menciptakan naungan yang mendukung sikap GPU
batching statis