Mengoptimalkan panggilan menggambar
Menciptakan naungan yang mendukung sikap GPU

GPU instancing

GPUSicing adalah metode draw call optimization yang membuat beberapa salinan 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
dengan bahan yang sama dalam panggilan tunggal. Setiap salinan mesh disebut instance. Ini berguna untuk menggambar hal-hal yang muncul beberapa kali 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
, misalnya, pohon atau semak.

GPU baycing membuat jala identik dalam panggilan menggambar yang sama. Untuk menambahkan variasi dan mengurangi munculnya pengulangan, setiap kasus dapat memiliki sifat yang berbeda, seperti Color atau Scale. Gambar panggilan yang membuat beberapa contoh muncul di Bingkai Debugger sebagai Draw Mesh (instanced).

Persyaratan dan kompatibilitas

Bagian ini mencakup informasi tentang platform, 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
, dan kompatibilitas SRP Batcher GPU.

Kompatibilitas platform

Penjahitan GPU tersedia di setiap platform kecuali WebGLLogin API yang membuat grafis 2D dan 3D di browser web. Opsi build Unity WebGL memungkinkan Unity untuk mempublikasikan konten sebagai program JavaScript yang menggunakan teknologi HTML5 dan WebGL rendering API untuk menjalankan konten Unity di browser web. More info
Lihat di Glossary
1.0.

Kompatibilitas pipa Render

Feature Built-in Render Pipeline Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Custom Scriptable Render Pipeline (SRP)
GPU instancing Yes G (1) G (1) G (1)

Notes:

  1. Hanya jika naungan tidak kompatibel dengan Login Login.

Login Login

Penjahitan GPU tidak kompatibel dengan Login Login. The SRP Batcher mengambil prioritas atas GPU... Jika sebuah GameObjectObjek 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
kompatibel dengan SRP Batcher, Unity menggunakan SRP Batcher untuk membuatnya, bukan GPU Suspensioncing. Untuk informasi lebih lanjut tentang prioritas metode optimasi, lihat Mengoptimalkan prioritas.

Jika proyek Anda menggunakan SRP Batcher dan Anda ingin menggunakan GPU Archcing untuk GameObject, Anda dapat melakukan salah satu berikut:

Using GPU instancing

Unity menggunakan GPUlawcing untuk GameObjects yang berbagi mesh dan material yang sama. Misalnya jala dan bahan:

  • shaderProgram yang berjalan di GPU. More info
    Lihat di Glossary
    material harus mendukung GPU rincing. Unity's Standar Shader mendukung GPUlawcing, seperti melakukan semua permukaan naunganCara merampingkan naungan menulis untuk Pipeline Render Built-in. More info
    Lihat di Glossary
    . Untuk menambahkan dukungan GPUjahcing ke naungan lain, lihat [Creating shaders yang mendukung GPUSicing (gpu-instancing-shader).
  • Jaring harus dari salah satu sumber berikut:
    • Komponen MeshRenderer atau panggilan Grafik.DrawMesh. Unity menambahkan jala dari sumber-sumber ini ke daftar dan upaya untuk membuat mereka bersama. Jika GameObject yang merupakan komponen MeshRenderer melekat pada SRP Batcher kompatibel, maka Unity tidak dapat instance yang mesh. Untuk informasi lebih lanjut, lihat Login Kompatibilitas batcher.
      Note: Unity tidak mendukung GPU bertatahkan untuk SkinnedMeshRenderers.
    • Sebuah panggilan Grafik.DrawMeshInstanced atau Grafik.DrawMeshInstancedIndirect. Metode ini memungkinkan mesh yang sama di beberapa tempat menggunakan naungan yang sama. Unity mengeksekusi setiap panggilan secara terpisah yang berarti tidak bisa mengeluarkan jala dari panggilan yang berbeda bersama.

Untuk menggunakan GPUrentcing untuk bahan, pilih opsi Enable GPU Instancing di InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary
.

The Enable GPU Instancing option as it appears in the material Inspector.
GPU yang Dapat Diaktifkan Opsi penyeimbang karena muncul di Inspektur materi.

Lighting

Peredam GPU mendukung Sistem Penerangan Global Baked Unity. Unity Standard Shaders dan naungan permukaan mendukung sistem GPUrincing dan Unity Baked Global IlluminationKelompok teknik yang model pencahayaan langsung dan tidak langsung untuk memberikan hasil pencahayaan yang realistis.
Lihat di Glossary
secara default.

Setiap instance GPU mendukung pencahayaan global dari salah satu sumber berikut:

  • Jumlah Probe Cahayaprobe cahaya menyimpan informasi tentang bagaimana cahaya melewati ruang di tempat kejadian Anda. Koleksi probe cahaya yang diatur dalam ruang tertentu dapat meningkatkan pencahayaan pada objek bergerak dan pemandangan LOD statis dalam ruang itu. More info
    Lihat di Glossary
    .
  • Satu 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
    .
    Note: Contohnya dapat menggunakan beberapa daerah atlas di lightmap.
  • Satu komponen Volume Proxy Probe CahayaKomponen yang memungkinkan Anda untuk menggunakan informasi lebih banyak pencahayaan untuk GameObjects dinamis besar yang tidak dapat menggunakan peta cahaya panggang (misalnya, Sistem Partikel besar atau Mesh Berwarna). More info
    Lihat di Glossary
    (LPPV).
    Note: Anda harus bake LPPV untuk volume ruang yang mengandung semua kasus.

GPU tenggelam secara otomatis bekerja dengan:

  • Dynamic Mesh RenderersKomponen mesh yang mengambil geometri dari Filter Mesh dan render di posisi yang ditentukan oleh komponen Transform objek. More info
    Lihat di Glossary
    dipengaruhi oleh Probe Cahaya.
  • Mesh Statis Renderers Anda bake ke tekstur lightmap yang sama. Renderer Mesh statis dalam konteks ini jika termasuk Contribute GI dalam Bendera Editor Statis.

Untuk mengaktifkan rendering Probe Cahaya untuk Graphics.DrawMeshInstanced, atur parameter LightProbeUsage ke CustomProvided dan memberikan BahanPropertyBlock yang mencakup data Probe. Untuk informasi lebih lanjut dan contoh kode, lihat LightProbes.CalculateInterpolatedLightAndOcclusionProbes.

Atau, Anda dapat lulus referensi komponen LPPV dan LightProbeUsage.UseProxyVolume ke Graphics.DrawMeshInstanced. Ketika Anda melakukan ini, semua contoh volume untuk L0 dan L1 band data Probe Cahaya. Jika Anda ingin melengkapi data L2 dan data oklusi, gunakan MaterialPropertyBlock. Untuk informasi lebih lanjut, lihat Probe Cahaya: Informasi teknis.

Performance implications

Mesh yang memiliki sejumlah simpul yang rendah tidak dapat diproses secara efisien menggunakan GPU tenggelam karena GPU tidak dapat mendistribusikan pekerjaan dengan cara yang sepenuhnya menggunakan sumber daya GPU. Inefisiensi pemrosesan ini dapat memiliki efek merugikan pada kinerja. Batasan di mana ketidakseimbangan mulai tergantung pada GPU, tetapi sebagai aturan umum, jangan gunakan GPU Suspensioncing untuk jala yang memiliki lebih sedikit dari 256 simpul.

Jika Anda ingin membuat jala dengan sejumlah kecil vertices berkali-kali, praktik terbaik adalah untuk membuat penyangga tunggal yang berisi semua informasi mesh dan gunakan yang menarik jala.


  • 2017–10–24 Login

  • Panduan checkbox yang dapat disengaja, DrawMeshInstancedIndirect, #pragma multi-kompile ditambahkan di 5.6

  • Shader menghangatkan untuk GPU lancip ditambahkan dalam NewIn20173

  • Global Illumination (GI) dukungan di GPUSicing ditambahkan dalam Oktober 2018

Mengoptimalkan panggilan menggambar
Menciptakan naungan yang mendukung sikap GPU