ShaderLab syntax: Blending

Blending은 투명한 물체를 만들기 위해 사용됩니다.

그래픽들이 표현될 때 모든 쉐이더가 실행되고 모든 텍스쳐가 적용되어진 후에 픽셀은 스크린에 쓰여집니다. 그들이 이미 있는 것과 어떻게 결합되는지는Blend 명령에 의해 조절됩니다.

Syntax

Blend Off
블렌딩 기능 취소
Blend SrcFactor DstFactor
블렌딩을 구성 & 활성화. 생성된 색상은 SrcFactor를 곱합니다. 스크린에 이미 있던 색상은 DstFactor 에 의해 곱해지고 두 개는 함께 더해집니다.

Properties

모든 다음의 속성들은SrcFactor와DstFactor 둘 다를 위해서 유효합니다. Source 는 계산되어지는 색상을 의미하고 Destination 는 이미 스크린에 있는 색상을 의미합니다.

One

1의 값 – 소스 또는 데스티네이션 색상이 온전히 오게 합니다.

 

Zero

0의 값 – 소스 또는데스티네이션 값을 삭제하게 합니다.

 

SrcColor

이 스테이지의 값은 소스 색상 값에 의해 곱해집니다.

 

SrcAlpha

이 스테이지의 값은 소스 알파 값에 의해 곱해집니다.

 

DstColor

이 스테이지의 값은 프레임 버퍼 소스 색상 값에 의해 곱해집니다.

 

DstAlpha

이 스테이지의 값은 프레임 버퍼 소스 알파 값에 의해 곱해집니다.

 

OneMinusSrcColor

이 스테이지의 값은 (1 – 소스 색상)에 의해 곱해집니다.

 

OneMinusSrcAlpha

이 스테이지의 값은 (1 – 소스 알파)에 의해 곱해집니다.

 

OneMinusDstColor

이 스테이지의 값은 (1 – 데스티네이션 색상)에 의해 곱해집니다.

 

OneMinusDstAlpha

이 스테이지의 값은 (1 – 데스티네이션 알파)에 의해 곱해집니다.

 

Details

아래는 가장 흔한 블렌드 타입입니다:

Blend SrcAlpha OneMinusSrcAlpha     // Alpha blending
Blend One One                       // Additive
Blend One OneMinusDstColor          // Soft Additive
Blend DstColor Zero                 // Multiplicative
Blend DstColor SrcColor             // 2x Multiplicative

Example

이것은 스크린에 이미 무엇이 있던 하나의 텍스쳐를 추가하는 쉐이더의 작은 예입니다:

Shader "Simple Additive" {
    Properties {
        _MainTex ("Texture to blend", 2D) = "black" {}
    }
    SubShader {
        Tags { "Queue" = "Transparent" }
        Pass {
            Blend One One
            SetTexture [_MainTex] { combine texture }
        }
    }
}

'TA > Unity Shader 레퍼런스' 카테고리의 다른 글

Performance Tips when Writing Shaders  (0) 2012.07.12
Writing vertex and fragment shaders  (0) 2012.07.12
Fallback  (0) 2012.05.21
RenderTech-VertexLit  (0) 2012.05.17
RenderTech-ForwardRendering  (0) 2012.05.17
Posted by 프리랜서 디자이너