perintah ShaderLab: Login
perintah ShaderLab: Login

perintah ShaderLab: Login

Tentukan operasi campuran yang digunakan oleh perintah Blend. Untuk perintah ini untuk memiliki efek apa pun, harus ada perintah Blend di blok Pass yang sama (jika perintah ini ada di blok Pass) atau blok SubShader (jika perintah ini ada di blok SubShader).

Tidak semua operasi campuran didukung pada semua perangkat, dan dukungan tergantung pada API grafis dan perangkat keras. API grafis yang berbeda menangani operasi campuran yang tidak didukung berbeda: operasi yang tidak didukung GL, dan Vulkan dan Metal jatuh kembali ke Menambahkan operasi.

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
BlendOp Yes Yes Yes Yes

Usage

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
BlendOp <operation> BlendOp Sub Mengatur operasi campuran yang digunakan oleh perintah Blend.

Nilai parameter yang valid

Parameter Value Function
operation Add Tambahkan sumber dan tujuan bersama.
Sub Subtrak tujuan dari sumber.
RevSub Subtract sumber dari tujuan.
Min Gunakan sumber dan tujuan yang lebih kecil. (Lihat catatan 1)
Max Gunakan sumber dan tujuan yang lebih besar. (Lihat catatan 1)
LogicalClear Operasi logika: Clear (0) (Lihat catatan 2)
LogicalSet Operasi logika: Set (1) (Lihat catatan 2)
LogicalCopy Operasi logika: Copy (s) (Lihat catatan 2)
LogicalCopyInverted Operasi logika: Copy inverted (!s) 2
LogicalNoop Operasi logika: Noop (d) (Lihat catatan 2)
LogicalInvert Operasi logika: Invert (!d) (Lihat catatan 2)
LogicalAnd Operasi logika: And (s & d) (Lihat catatan 2)
LogicalNand Operasi logika: Nand !(s & d) (Lihat catatan 2)
LogicalOr Operasi logika: Or (s | d) (Lihat catatan 2)
LogicalNor Operasi logika: Nor !(s | d) (Lihat catatan 2)
LogicalXor Operasi logika: Xor (s ^ d) (Lihat catatan 2)
LogicalEquiv Operasi logika: Equivalence !(s ^ d) (Lihat catatan 2)
LogicalAndReverse Operasi logika: Reverse And (s & !d) (Lihat catatan 2)
LogicalAndInverted Operasi logika: Inverted And (!s & d) (Lihat catatan 2)
LogicalOrReverse Operasi logika: Reverse Or (s | !d) (Lihat catatan 2)
LogicalOrInverted Operasi logika: Inverted Or (!s | d) (Lihat catatan 2)
Multiply Operasi campuran OpenGL canggih: Multiply (Lihat catatan 3)
Screen Operasi campuran OpenGL canggih: Screen (Lihat catatan 3)
Overlay Operasi campuran OpenGL canggih: Overlay (Lihat catatan 3)
Darken Operasi campuran OpenGL canggih: Darken (Lihat catatan 3)
Lighten Operasi campuran OpenGL canggih: Lighten (Lihat catatan 3)
ColorDodge Operasi campuran OpenGL canggih: ColorDodge (Lihat catatan 3)
ColorBurn Operasi campuran OpenGL canggih: ColorBurn (Lihat catatan 3)
HardLight Operasi campuran OpenGL canggih: HardLight (Lihat catatan 3)
SoftLight Operasi campuran OpenGL canggih: SoftLight (Lihat catatan 3)
Difference Operasi campuran OpenGL canggih: Difference (Lihat catatan 3)
Exclusion Operasi campuran OpenGL canggih: Exclusion (Lihat catatan 3)
HSLHue Operasi campuran OpenGL canggih: HSLHue (Lihat catatan 3)
HSLSaturation Operasi campuran OpenGL canggih: HSLSaturation (Lihat catatan 3)
HSLColor Operasi campuran OpenGL canggih: HSLColor (Lihat catatan 3)
HSLLuminosity Operasi campuran OpenGL canggih: HSLLuminosity (Lihat catatan 3)

Catatan:

  1. Min dan Max memerlukan GL_EXT_blend_minmax pada OpenGL ES 2.
  2. Operasi logika memerlukan DX 11.1+ atau Vulkan.
  3. Operasi campuran OpenGL canggih memerlukan GLES3.1 AEP+, GL_KHR_blend_equation_advanced, atau GL_NV_blend_equation_advanced. Mereka hanya dapat digunakan dengan campuran RGBA standar; mereka tidak kompatibel dengan campuran RGB dan alfa terpisah.

Examples

Shader "Examples/CommandExample"
{
    SubShader
    {
         // The rest of the code that defines the SubShader goes here.

        Pass
        {    
             // Enable subtractive blending for this Pass
             Blend SrcAlpha One
             BlendOp RevSub
            
              // 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
    {
         // Enable subtractive blending for this SubShader
         Blend SrcAlpha One
         BlendOp RevSub

         // The rest of the code that defines the SubShader goes here.        

        Pass
        {    
              // The rest of the code that defines the Pass goes here.
        }
    }
}
perintah ShaderLab: Login
perintah ShaderLab: Login