> lerp 선형 보간 = 그라디에이션
텍스쳐를 섞을 때 사용

lerp(X, Y, s) -> 0(x) s 1(y) 로 생각하면 된다.

 

> 텍스쳐 한 장 더 받기

텍스쳐 한 장을 더 받는 인터페이스 생성 - 변수 선언 - 텍스쳐2 입력(섞지 않아 1만 보임) - lerp로 섞음

오 두 장

Shader "Custom/tex2"
{
    Properties
    {
        _MainTex("Albedo(RGB)", 2D) = "grey" {}
        _MainTex2("Albedo(RGB)", 2D) = "grey" {} // 두 번째 텍스처 입력 인터페이스
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }

        CGPROGRAM
        #pragma surface surf Standard

        sampler2D _MainTex;
        sampler2D _MainTex2; // 두번째 텍스쳐 변수

        struct Input
        {
            float2 uv_MainTex;
        };

        void surf (Input IN, inout SurfaceOutputStandard o)
        {
           fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
           fixed4 c2 = tex2D (_MainTex2, IN.uv_MainTex); // 두번째 텍스쳐 사용

            o.Albedo = lerp(c.rgb, c2.rgb, 1); //0: c텍스쳐 출력 / 1: c2 텍스쳐 출력
        
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

 

>      o.Albedo = lerp(c.rgb, c2.rgb, 0.5); // 반 씩 섞기

0.5

 

 

> lerp 슬라이더 인터페이스를 만들어 섞기

Shader "Custom/tex2"
{
    Properties
    {
        _MainTex("Albedo(RGB)", 2D) = "grey" {}
        _MainTex2("Albedo(RGB)", 2D) = "grey" {}
        _lerp("lerp",Range(0,1)) = 0 // lerp 슬라이더 인터페이스 생성
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }

        CGPROGRAM
        #pragma surface surf Standard

        sampler2D _MainTex;
        sampler2D _MainTex2;

        float _lerp; // 변수 선언

        struct Input
        {
            float2 uv_MainTex;
        };

        void surf (Input IN, inout SurfaceOutputStandard o)
        {
           fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
           fixed4 c2 = tex2D (_MainTex2, IN.uv_MainTex);

            o.Albedo = lerp(c.rgb, c2.rgb, _lerp); // lerp 슬라이더로 섞는 비율 조정
        
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

 

 

+ Recent posts