欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity 冰材质 Shader

程序员文章站 2022-06-10 23:47:34
...
Shader "Custom/Ice" {
    Properties {
        _Color ("Main Color", Color) = (1,1,1,1)
        _MainTex ("BaseTex ", 2D) = "white" {}
        _BumpMap ("Normalmap", 2D) = "bump" {}
        _BumpAmt ("Distortion", range (0,2)) = 0.1
    }

    SubShader {
        Tags { "Queue"="Transparent""RenderType"="Opaque" }
        ZWrite off

        CGPROGRAM
            #pragma surface surf Lambert nolightmap nodirlightmap alpha:blend

            sampler2D _BumpMap;
            sampler2D _MainTex;
            float4 _Color;
            float _BumpAmt;

            struct Input {
                float2 uv_MainTex;
                float2 uv_BumpMap;
            };

            void surf (Input IN,inout SurfaceOutput o) {
                fixed3 nor = UnpackNormal (tex2D(_BumpMap, IN.uv_BumpMap));
                fixed4 trans =tex2D(_MainTex,IN.uv_MainTex+nor.xy*_BumpAmt)*_Color;

                o.Albedo = trans.rgb;
                o.Alpha =trans.a;
                o.Emission = trans; 
            }
        ENDCG
    }
    FallBack "Transparent/VertexLit"
}

使用 Phtoshop2015 制作法线贴图:
滤镜 -> 3D -> 生成法线图

贴图例子:

Unity 冰材质 ShaderUnity 冰材质 Shader