블렌드 펙터 연산 - SrcAlpha OneMinusSrcAlpha
2022. 7. 27. 13:53ㆍPublic/Shader
블렌드 펙터 연산 기본 공식은 다음과 같다.
(펙터) X Source + (펙터) X Destination
메뉴얼에서 추천하는 기본적인 블렌딩 펙터 연산 조합이다.
- Blend SrcAlpha OneMinusSrcAlpha // Alpha blending
- Blend SrcAlpha One // Additive
- Blend One One // Additive No Alpha Black is Transparent
- Blend DstColor Zero // Multiplicative
- Blend DstColor SrcColor // 2x Multiplicative
ex)
SrcAlpha OneMinusSrcAlpha
(SrcAlpha) x Source + (OneMinusSrcAlpha) x Destination
(SrcAlpha) x Source 의 결과는 다음과 같다.
X
=
그리고
(OneMinusSrcAlpha) x Destination 의 결과는 다음과 같다. //OneMinusSrcCoor : 1 - 소스컬러
X
=
이제 둘을 더하면 정말로 알파가 뚫리는 Alpha Blend 모드가 된다.
겹쳐지는 부분이 밝아지지도 않고, 어두워지지도 않은 그냥 보통의 결과물이다. 그저 알파에 의해서 두 장이 섞이는 듯한 느낌이 든다.
Shader "Custom/DrawAlpha"
{
Properties
{
_MainTex ("Albedo (RGB)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Transparent" "Queue" = "Transparent"}
zwrite off
blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma surface surf Lambert keepalpha
#pragma target 3.0
sampler2D _MainTex;
struct Input
{
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Emission = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
'Public > Shader' 카테고리의 다른 글
블렌더 펙터 연산 - One One (0) | 2022.07.27 |
---|---|
블렌드 펙터 연산 - SrcAlpha One (0) | 2022.07.27 |
커스텀 제어 가능 알파 블렌딩 && 펙터 (0) | 2022.07.26 |
알파 테스팅과 컷아웃 (0) | 2022.07.26 |
Alpha Blend (0) | 2022.07.25 |