게임 그래픽 프로그래밍

그래픽스 시험예상문제(바바리안 꾸미기)

hanui1210 2024. 9. 6. 12:51

도끼 재질 적용하기 / 금속재질 날카롭게 표현

Shader "Custom/Axe"
{
    Properties
    {
    
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _SpecularTex("Speculer", Range(0,1)) = 0.5
        _Gloss("Gloss", Range(0,10)) = 0
        _SpecColor("SpecColor", color) = (1,1,1,1)
        _MainTex2("AmbientOcclusion", 2D) = "white" {}
      
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
 

        CGPROGRAM
      
        #pragma surface surf BlinnPhong

    
        #pragma target 3.0

        sampler2D _MainTex;
        float _SpecularTex;
        float _Gloss;
        sampler2D _MainTex2;

        struct Input
        {
            float2 uv_MainTex;
            float4 color:COLOR;
            float2 uv_MainTex2;
        };

        void surf (Input IN, inout SurfaceOutput o)
        {     
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
            fixed4 ambientOcclusion = tex2D (_MainTex2, IN.uv_MainTex2);
           //o.Albedo = c.rgb;     
            // o.Alpha = c.a;
           o.Albedo = lerp(IN.color.rgb,c.rgb, 1);
            o.Gloss = lerp(0,1,IN.color.r); // 날카롭게
           // o.Albedo = lerp(o.Albedo, c.rgb, IN.color.b); => 칼날아닌부분은 그대로 
           o.Albedo = o.Albedo.rgb*(ambientOcclusion.rgb*0.5+0.5);
           o.Alpha = o.Alpha;
            o.Specular = 0.4; // 빛각도에 따라 날카로움 표시

            // 유니티 Export Mesh Asset 누르고 복사한 부분에 적용 


        }
        ENDCG
    }
    FallBack "Diffuse"
}