블렌드 펙터 연산 - DstColor SrcColor

2022. 7. 28. 10:33Public/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

Destination의 결과를 확인하기 위해 예시 이미지를 사용해서 결과를 확인하겠습니다.

이번에는 Blend DstColor SrcColor 이다.

첫번째로 (DstColor) x Source 의 결과는 이전과 같다.

x

=

 

 

그리고 두 번째로 (SrcColor) x Destination 입니다.

두 연산은 순서만 바뀌었을 뿐 결과는 같은걸 확인할 수 있습니다.

x

=

 

그러면 이미지가 살짝 밝아지면서 색이 약간 올라가는걸 확인할 수 있습니다.

+

=

 

 

 

 

 

 

 

Shader "Custom/CustomBlending_DstColor_SrcColor"
{
    Properties
    {
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Transparent" "Queue" = "Transparent"}        
        zwrite off
        blend DstColor SrcColor



        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.Albedo = c.rgb;                        
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Legacy Shaders/Transparent/VertexLit"
}

 

'Public > Shader' 카테고리의 다른 글

Alpha2Pass  (0) 2022.07.28
zwrite on/off  (0) 2022.07.28
블렌드 펙터 연산 - DstColor Zero  (0) 2022.07.27
블렌더 펙터 연산 - One One  (0) 2022.07.27
블렌드 펙터 연산 - SrcAlpha One  (0) 2022.07.27