Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

nomad-programmer

[CG/Unity] 커스텀 알파 블랜딩 본문

CG/Unity

[CG/Unity] 커스텀 알파 블랜딩

scii 2022. 2. 2. 19:08
Shader "Custom/AlphaBlend"
{
    Properties
    {
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Transparent" "Queue"="Transparent" }
        zwrite off
        blend SrcAlpha OneMinusSrcAlpha
        
        LOD 200

        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"
}

blend SrcAlpha OneMinusSrcAlpha 는 블랜딩 옵션이다. 저기에 사용할 수 있는 블랜딩 팩터는 다음과 같다.

  • One : 숫자 1을 의미
  • Zero : 숫자 0을 의미
  • SrcColor : 소스의 컬러를 의미
  • SrcAlpha : 소스의 알파를 의미
  • DstColor : 목적지(배경)의 컬러를 의미
  • DstAlpha : 목적지(배경)의 알파를 의미
  • OneMinusSrcColor : 1 - 소스 컬러를 의미
  • OneMinusSrcAlpha : 1- 소스 알파를 의미
  • OneMinusDstColor : 1 - 목적지(배경)의 컬러를 의미
  • OneMinusDstAlpha : 1- 목적지(배경)의 알파를 의미

keepalpha 는 유니티 5.0부터 서피스 셰이더에서는 기본적으로 모든 불투명 셰이더 알파에 1.0을 입력하게 되어있다고 한다. 이것을 쓰면 그것을 막아 준다.

 

'CG > Unity' 카테고리의 다른 글

[CG/Unity] 타 들어가며 없어지는 셰이더  (0) 2022.02.02
[CG/Unity] 2Pass를 이용한 깨끗한 알파 블랜딩  (1) 2022.02.02
[CG/Unity] Z Buffer  (0) 2022.02.02
[CG/Unity] Cube Map  (0) 2022.02.01
[CG/Unity] Diffuse Warping  (0) 2022.02.01
Comments