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.
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 |
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. |
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:
GL_EXT_blend_minmax
pada OpenGL ES 2.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.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.
}
}
}