본문 바로가기
셰이더 (Shader)/유니티 쉐이더 스타트업 - 정종필

[Unity/Shader] 파트18-2 : 로봇 눈 깜빡이기 (Ramp 텍스쳐 사용)

by Minkyu Lee 2023. 9. 6.

썸네일

아래와 같은 램프 텍스쳐를 제작해 깜빡임에 사용한다.

sin보다 불규칙한 패턴을 표현하는데 좋다.

텍스쳐 용량은 작아야하므로 128x2를 사용한다.

 

코드

Shader "Custom/part18-2"
{
    Properties
    {
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _MaskTex ("Mask", 2D) = "white" {}
        _RampTex ("Ramp", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 200

        CGPROGRAM
        #pragma surface surf Lambert
        #pragma target 3.0

        sampler2D _MainTex;
        sampler2D _MaskTex;
        sampler2D _RampTex;

        struct Input
        {
            float2 uv_MainTex;
            float2 uv_MaskTex;
            float2 uv_RampTex;
        };

        UNITY_INSTANCING_BUFFER_START(Props)
            // put more per-instance properties here
        UNITY_INSTANCING_BUFFER_END(Props)

        void surf (Input IN, inout SurfaceOutput o)
        {
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
            float4 m = tex2D (_MaskTex, IN.uv_MaskTex);
            float4 Ramp = tex2D (_RampTex, float2(_Time.y, 0.5));
            o.Albedo = c.rgb;
            o.Emission = c.rgb * m.g * Ramp.r;
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

 

추가정보

나는 후디니를 사용하여 램프 텍스쳐를 제작하였다.

버전은 19.5.493이며, Labs가 설치돼있어야한다.

아래에 hip파일을 첨부한다.

rampTex_V0001_init.hip
0.12MB

댓글