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 |