본문 바로가기
게임개발/게임 그래픽 프로그래밍

홀로그램 입히기

by pudding81 2024. 2. 20.

 

 

 

Shader "Custom/sword"
{
    Properties
    {
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _Color ("Color", Color) = (1,1,1,1)
        _RimPow("Rimpow",Range(1,10))=3
    }
    SubShader
    {
        Tags { "RenderType"="Transparent" "Queue"="Transparent" }
       

        CGPROGRAM
     
        #pragma surface surf _Lambert alpha:fade //홀로그램

       
        #pragma target 3.0

        sampler2D _MainTex;
       float _RimPow;
       float4 _Color;


        struct Input
        {
            float4 color : COLOR ;
            
            float2 uv_MainTex;
            float3 viewDir;
            float3 worldPos;
        };

            

       

        void surf (Input IN, inout SurfaceOutput o)
        {
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
           
           // o.Albedo = IN.color.rgb;

            
            o.Emission =_Color.rgb;
            //간격 10배 좁히기, 흰부분 줄이기 30제곱 
            float holo =pow(frac(IN.worldPos.g*10-_Time.y),30);

            float ndotv =saturate(dot(o.Normal,IN.viewDir));
            float rim = pow(1-ndotv,_RimPow);

            o.Alpha = rim+holo;
        }

        float4 Lighting_Lambert(SurfaceOutput s, float3 lightDir, float atten)
        {
            return float4(0,0,0,s.Alpha);
            }
        ENDCG
    }
    FallBack "Transparent/Diffuse"
}

'게임개발 > 게임 그래픽 프로그래밍' 카테고리의 다른 글

Lambert-BlinnPhong-Rim 라이트 적용  (0) 2024.02.21
BlinnPhong 스펙큘러  (0) 2024.02.21
홀로그램 만들기  (0) 2024.02.20
Rim 라이트 만들기  (0) 2024.02.20
Standard - Lambert -HalfLambert  (0) 2024.02.20