ShaderLab: menetapkan tag ke SubShader
ShaderLab: mendefinisikan Pass

ShaderLab: menetapkan nilai LOD ke SubShader

Halaman ini berisi informasi tentang menggunakan blok LOD pada kode ShaderLabBahasa Unity untuk mendefinisikan struktur benda-benda Shader. More info
Lihat di Glossary
Anda untuk menetapkan nilai LODTeknik Tingkat Detail (LOD) adalah optimasi yang mengurangi jumlah segitiga yang dimiliki Unity untuk membuat GameObject ketika jaraknya dari kamera meningkat. More info
Lihat di Glossary
(tingkat detail) ke SubShader.

Overview

Anda dapat menetapkan nilai LOD ke SubShader. Nilai ini menunjukkan bagaimana menuntutnya.

Pada runtime, Anda dapat mengatur nilai shaderA program that runs on the GPU. More info
See in Glossary
LOD
untuk satu 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
, atau untuk semua objek Shader. Unity kemudian memprioritaskan SubShaders yang memiliki nilai LOD yang lebih rendah. Untuk informasi tentang bagaimana Unity memilih ketika menggunakan SubShaders, lihat Objek-objek shader: Order operasi selama rendering.

Sitemap Meskipun teknik ini dinamakan setelah fitur LOD untuk rendering meshes, ada perbedaan penting: shader LOD tidak berhubungan dengan jarak dari Note:, dan Unity tidak menghitung warna LOD secara otomatis. Anda harus mengatur LOD warna maksimum secara manual.CameraKomponen yang menciptakan gambar sudut pandang tertentu di tempat kejadian Anda. Output ditarik ke layar atau ditangkap sebagai tekstur. More info
Lihat di Glossary
, and Unity does not calculate shader LOD automatically. You must set the maximum shader LOD manually.

Overview

Gunakan teknik ini untuk kinerja naungan halus pada perangkat keras yang berbeda. Ini berguna ketika SubShader secara teoritis didukung oleh perangkat keras pengguna, tetapi perangkat keras tidak mampu menjalankannya dengan baik.

Kompatibilitas pipa Render

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
ShaderLab: SubShader LOD block Yes Yes Yes Yes

Menggunakan blok LOD

Di ShaderLab, Anda menetapkan nilai LOD ke SubShader dengan menempatkan blok LOD di dalam blok SubShader.

Signature Function
LOD [value] Menetapkan nilai LOD yang diberikan kepada SubShader.

Note: Di dalam blok Shader Anda, Anda harus menempatkan SubShaders Anda dalam urutan LOD. Misalnya, jika Anda memiliki SubShaders dengan nilai LOD 200, 100, dan 500, Anda harus menempatkan SubShader dengan nilai LOD 500 pertama, diikuti oleh satu dengan nilai LOD 200, diikuti oleh satu dengan nilai LOD 100. Ini karena Unity memilih SubShader pertama yang valid, jadi jika menemukan satu dengan LOD lebih rendah pertama itu akan selalu menggunakan itu.

Menggunakan nilai LOD SubShader dengan kode C#

Untuk mengatur warna LOD untuk objek Shader yang diberikan, Anda dapat menggunakan Shader.maximumLOD. Untuk mengatur warna LOD untuk semua benda Shader, Anda dapat menggunakan Shader.globalMaximumLOD. Secara default, tidak ada LOD maksimum.

Contoh kode

Kode contoh ini menciptakan objek Shader yang mengandung dua SubShaders: satu dengan nilai LOD 200, dan satu dengan nilai 100. SubShaders berada dalam urutan turun nilai LOD.

Shader "Examples/ExampleLOD"
{
    SubShader
    {
        LOD 200

        Pass
        {                
              // The rest of the code that defines the Pass goes here.
        }
    }

    SubShader
    {
        LOD 100

        Pass
        {                
              // The rest of the code that defines the Pass goes here.
        }
    }
}

Nilai LOD untuk naungan bawaan Unity

Di Pipeline Render Built-in, naungan internal Unity memiliki nilai LOD berikut:

LOD value Shader name
100 g Unlit/Texture
Unlit/Color
Unlit/Transparent
Unlit/Transparent Login
300 Standar
Standard (Specular Setup)
Autodesk Interaktif

Nilai LOD untuk naungan legacy

Di Pipeline Render Built-in, legacy shaders internal Unity memiliki nilai LOD berikut:

LOD value Shader name
100 g VertexLit
100 g Decal
Reflective VertexLit
200 g Diffuse
250 g Diffuse Detail
Reflective Bumped Unlit
Reflective Login
300 Bumped
Specular
400 Bumped Specular
500 g Parallax
600 Parallax Specular
ShaderLab: menetapkan tag ke SubShader
ShaderLab: mendefinisikan Pass