shader lab 2

unity shader 法线贴图例子:

Shader "Custom/textureshader" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _BumpMap ("bumpmmap",2D) = "white"{}
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        LOD 200
        
        CGPROGRAM
        #pragma surface surf Lambert

        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
            float2 uv_BumpMap;
        };
        sampler2D _BumpMap;
        void surf (Input IN, inout SurfaceOutput o) {
            half4 c = tex2D (_MainTex, IN.uv_MainTex);
            o.Albedo = c.rgb;
            o.Normal = UnpackNormal(tex2D(_BumpMap,IN.uv_BumpMap));
        }
        ENDCG
    } 
    FallBack "Diffuse"
}

通过设置不同的法线贴图来改变效果

UnpackNormal是unity写好的函数。想要了解更多关于法线贴图可以看看这个地址:http://blog.sina.com.cn/s/blog_471132920101dij9.html

第三个例子:Rim Lighting

Shader "Custom/textureshader" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _BumpMap ("bumpmmap",2D) = "white"{}
        _RimColor("Rim Color ", Color) = (0.26,0.19,0.16,0.0)
        _RimPower("Rim Range",Range(0.5,8.0)) = 3.0
        }
    SubShader {
        Tags { "RenderType"="Opaque" }
        LOD 200
        
        CGPROGRAM
        #pragma surface surf Lambert

        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
            float2 uv_BumpMap;
            float3 viewDir;
        };
        sampler2D _BumpMap;
        float4 _RimColor;
        float4 _RimPower;

        void surf (Input IN, inout SurfaceOutput o) {
            half4 c = tex2D (_MainTex, IN.uv_MainTex);
            o.Albedo = c.rgb;
            o.Normal = UnpackNormal(tex2D(_BumpMap,IN.uv_BumpMap));
            half rim = 1.0-saturate(dot(normalize(IN.viewDir),o.Normal));
            o.Emission = _RimColor.rgb*pow(rim,_RimPower);
        }
        ENDCG
    } 
    FallBack "Diffuse"
}

效果图

 

不过看效果边缘发光不是很明显。不知道是不是模型的问题

http://blog.csdn.net/poem_qianmo/article/details/42215079  这里有一个详细的表面着色介绍。

posted @ 2016-03-06 17:25  hcs2024  阅读(120)  评论(0编辑  收藏  举报