Menggunakan Pipa Render Built-in
Jalur rendering di Pipa Render Built-in

Grafik

Pada 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
Built-in, Anda dapat menggunakan graphics tiers untuk menerapkan pengaturan grafis yang berbeda ketika aplikasi Anda berjalan pada perangkat keras dengan kemampuan yang berbeda. Anda dapat menggunakan Unity built-in tier settings untuk mengkonfigurasi pengaturan umum, atau Anda dapat menentukan perilaku kustom dalam kode shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
Anda sendiri atau kode C#.

Sitemap Fitur ini hanya didukung di Pipeline Render Built-in. Dalam pipa render lainnya, Unity masih memeriksa perangkat keras pada startup dan menyimpan nilainya dalam Note:; namun, nilai lapangan ini tidak berpengaruh, dan Unity tidak melakukan operasi lain yang berkaitan dengan tiers grafis.Grafik.activeTier; however, the value of this field has no effect, and Unity does not perform any other operations relating to graphics tiers.

Grafik

Ketika Unity pertama memuat aplikasi Anda, itu memeriksa hardware dan grafis API dan menentukan mana grafik tingkat lingkungan saat ini sesuai dengan.

tiers grafis adalah:

Value Hardware Corresponding GraphicsTier enum value Corresponding shader keyword
1 Android: perangkat yang hanya mendukung OpenGL ES 2
iOS: iPhone sebelum iPhone 5S (tidak termasuk 5S, tetapi termasuk 5C), iPod hingga dan termasuk generasi ke-5, iPad hingga generasi ke-4, iPad mini generasi pertama
Desktop: DirectX 9
XR: HoloLens
Tingkat1 UNITY_HARDWARE_TIER1
2 Android: perangkat yang mendukung OpenGL ES 3, perangkat yang mendukung Vulkan
iOS: iPhone mulai dari iPhone 5S, iPad Air, iPad mini 2nd generasi, iPod 6th generasi, AppleTV
WebGL: semua perangkat
Tier2 UNITY_HARDWARE_TIER2
3 Desktop: OpenGL, Metal, Vulkan, DirectX 11+ Tier3 UNITY_HARDWARE_TIER3

Menggunakan tiers grafis dengan skrip C#

Unity menyimpan nilai tier grafis saat ini di Grafik.activeTier, diwakili oleh aum GraphicsTier. Untuk menambahkan perilaku kustom berdasarkan tingkat grafis saat ini, Anda dapat menguji nilai ini.

Untuk menimpa nilai Graphics.activeTier, atur secara langsung. Perhatikan bahwa Anda harus melakukan ini sebelum Unity memuat naungan yang bervariasi berdasarkan tingkat grafis. Tempat yang bagus untuk mengatur nilai ini 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
pra-beban, sebelum Anda memuat adegan utama Anda.

Pengaturan tingkat

Di Editor Unity, Anda dapat mengkonfigurasi tier settings. Pengaturan tingkat memungkinkan Anda untuk mengaktifkan atau menonaktifkan fitur grafis untuk setiap tingkat.

Pengaturan tingkat bekerja dengan mengubah arahan preprocessor #define dalam kode naungan internal Unity. Perubahan ini secara otomatis mempengaruhi naungan prebuilt untuk Pipeline Render Built-in (seperti Standar Shader), dan kode perpustakaan naungan internal untuk Permukaan ShaderCara merampingkan naungan menulis untuk Pipeline Render Built-in. More info
Lihat di Glossary
. Anda juga dapat menambahkan kode ke naungan berkode tangan Anda sendiri yang mengubah perilaku mereka berdasarkan pengaturan tingkat. Untuk informasi lebih lanjut, lihat Grafik tiers dan varian naungan.

Pengaturan tingkat default cocok untuk sebagian besar kasus penggunaan. Anda hanya harus mengubahnya jika Anda mengalami masalah kinerja, atau jika Anda ingin mengaktifkan fitur pada perangkat low-end yang tidak diaktifkan secara default.

Anda dapat mengkonfigurasi pengaturan tingkat yang berbeda untuk setiap tingkat grafis target build yang diberikan. Anda dapat mengubah pengaturan tingkat dalam cara berikut:

Anda dapat menguji pengaturan tingkat di Editor. Untuk melakukan ini, arahkan ke Edit > Graphics Tier dan pilih tingkat yang Anda inginkan Editor Unity untuk digunakan.

Grafik tiers dan varian naungan

Di Pipeline Render Built-in, Unity dapat menghasilkan varian warnaSebuah verion dari program naungan yang Unity menghasilkan sesuai dengan kombinasi khusus kata kunci naungan dan status mereka. Objek Shader dapat mengandung beberapa varian naungan. More info
Lihat di Glossary
yang sesuai dengan tiers grafis.

Sitemap Varietas naungan tingkat ini bekerja berbeda untuk varian naungan biasa. Pada runtime, ketika Unity memuat Note: ke memori CPU, itu hanya memuat varian untuk tingkat aktif; itu tidak memuat varian untuk tiers lain. Ini membantu mengurangi dampak runtime dari varian tingkat.Shader objectContoh kelas Shader, objek Shader adalah wadah untuk program naungan dan instruksi GPU, dan informasi yang memberi tahu Unity bagaimana menggunakannya. Gunakan mereka dengan bahan untuk menentukan penampilan adegan Anda. More info
Lihat di Glossary
into CPU memory, it only loads the variants for the active tier; it does not load the variants for other tiers. This helps to reduce the runtime impact of tier variants.

Untuk menghasilkan varian naungan tingkat, Unity menambahkan set kata kunci warna ini untuk semua naungan grafis:

UNITY_HARDWARE_TIER1
UNITY_HARDWARE_TIER2
UNITY_HARDWARE_TIER3

Anda dapat menggunakan kata kunci ini dalam kode HLSL Anda untuk menulis perilaku kondisional untuk perangkat keras yang lebih rendah atau lebih tinggi, cara yang sama bahwa Anda akan untuk setiap kata kunci naungan. Contoh:

#if UNITY_HARDWARE_TIER1
// Put code for tier 1 devices here
#else
// Put code for other devices here
#endif

Untuk informasi lebih lanjut tentang bekerja dengan kata kunci naungan dalam kode HLSL, lihat Mengatur dan menggunakan kata kunci naungan di HLSL.

Unity secara otomatis menghasilkan varian warna tingkat berdasarkan pengaturan tingkat untuk target build saat ini, seperti ini:

  • Jika semua pengaturan untuk semua tiers identik, Unity tidak menghasilkan varian warna tingkat.
  • Jika ada pengaturan untuk tiers yang berbeda berbeda dengan cara apapun, Unity menghasilkan semua varian warna tingkat.

Setelah menghasilkan semua varian warna tingkat, Unity mengidentifikasi dan deduplicates varian warna tingkat identik. Ini berarti bahwa jika pengaturan untuk dua tiers identik (misalnya, jika tingkat 1 berbeda tetapi tingkat 2 dan tingkat 3 identik dengan satu sama lain), maka varian ini tidak menambah ukuran file aplikasi Anda, dan cara itu beban Unity tier varian berarti bahwa mereka tidak mempengaruhi waktu pemuatan atau penggunaan memori runtime. Namun, ini masih menghasilkan pekerjaan kompilasi redundant.

Jika Anda ingin menggunakan pengaturan yang berbeda untuk tiers yang berbeda, tetapi Anda juga tahu bahwa ini akan menghasilkan pekerjaan redundan - misalnya, jika Anda tahu bahwa aplikasi Anda hanya akan pernah berjalan pada perangkat 1 tingkat dan tingkat 2 - Anda dapat menggunakan skrip untuk strip varian tingkat yang tidak diinginkan dari kompilasi, sama dengan varian lain. Untuk informasi lebih lanjut, lihat Varietas Shader.

Selain perilaku otomatis, Anda juga dapat memaksa Unity untuk menghasilkan varian warna tingkat berdasarkan per-bentuk. Ini berguna jika Anda menggunakan konstanta ini dalam kode HLSL Anda dan Anda ingin yakin bahwa Unity akan menyusun varian yang diperlukan, terlepas dari apakah pengaturan tingkat untuk build saat ini berbeda dari satu sama lain

Untuk secara manual memaksa Unity untuk menghasilkan varian warna tingkat untuk naungan yang diberikan, gunakan preprocessor #pragma hardware_tier_variants dalam kode HLSL Anda, dan tentukan API grafis yang ingin Anda menghasilkan varian per tingkat:

#pragma hardware_tier_variants gles3

Untuk daftar nama API grafis yang valid yang dapat Anda gunakan dengan arahan ini, lihat Database API. Untuk informasi umum tentang arahan #pragma, lihat pragma directives.

Menggunakan Pipa Render Built-in
Jalur rendering di Pipa Render Built-in