Mengatur bias kedalaman di GPU.
Bias kedalaman, juga disebut offset kedalaman, adalah pengaturan pada GPU yang menentukan kedalaman di mana ia menarik geometri. Sesuaikan bias kedalaman untuk memaksa GPU untuk menggambar geometri di atas geometri lain yang berada di kedalaman yang sama. Ini dapat membantu Anda untuk menghindari efek visual yang tidak diinginkan seperti jerawat z-fighting dan bayangan.
Untuk mengatur bias kedalaman untuk geometri tertentu, gunakan perintah ini atau RenderStateBlock. Untuk mengatur bias kedalaman global, yang mempengaruhi semua geometri, gunakan CommandBuffer.SetGlobalDepthBias. GPU menerapkan bias kedalaman untuk geometri spesifik selain bias kedalaman global.
Untuk mengurangi jerawat, Anda dapat mencapai efek visual yang sama dengan pengaturan light bias; Namun, pengaturan ini bekerja berbeda, dan mereka tidak mengubah keadaan di GPU. Untuk informasi lebih lanjut, lihat Masalah bayangan.
Feature name | Built-in Render PipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info See in Glossary |
Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | Custom SRP |
---|---|---|---|---|
Offset | Yes | Yes | Yes | Yes |
Perintah ini membuat perubahan pada state render. Gunakan blok Pass
untuk mengatur state render untuk Pass itu, atau menggunakannya dalam blok SubShader
untuk mengatur state render untuk semua Passes di SubShader.
Signature | Example syntax | Function |
---|---|---|
Offset <factor>, <units> |
Offset 1, 1 |
Menggambar geometri lebih dekat atau lebih jauh dari kamera, berdasarkan nilai yang diberikan. |
Parameter | Value | Function |
---|---|---|
factor | Mengambang, kisaran -1 melalui 1. | Timbangan maksimum Z lereng, juga disebut kemiringan kedalaman, untuk menghasilkan offset kedalaman variabel untuk setiap poligon. Polygons yang tidak sejajar dengan pesawat klip dekat dan jauh memiliki lereng Z. Sesuaikan nilai ini untuk menghindari artefak visual pada poligon tersebut. |
units | Mengambang, kisaran -1 melalui 1. | Timbangan nilai penyangga kedalaman yang dapat diselesaikan minimum, untuk menghasilkan offset kedalaman konstan. Nilai penyangga kedalaman yang dapat diselesaikan minimal (satu unit) bervariasi oleh perangkat. Nilai negatif berarti bahwa GPU menarik poligon lebih dekat ke kamera. Nilai positif berarti bahwa GPU menarik poligon lebih jauh dari kamera. |
Kode contoh ini menunjukkan sintaks untuk menggunakan perintah ini di blok Pass.
Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Sets the depth offset for this geometry so that the GPU draws this geometry closer to the camera
// You would typically do this to avoid z-fighting
Offset -1, -1
// The rest of the code that defines the Pass goes here.
}
}
}
Kode contoh ini menunjukkan sintaks untuk menggunakan perintah ini dalam blok SubShader.
Shader "Examples/CommandExample"
{
SubShader
{
// Sets the depth offset for this geometry so that the GPU draws this geometry closer to the camera
// You would typically do this to avoid z-fighting
Offset -1, -1
// The rest of the code that defines the SubShader goes here.
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}