unity shader案例分析(一)

xiaoxiao2021-02-28  66

Shader "Custom/test_1" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} //纹理 _BumpMap("Bumpmap",2D) = "bump"{} //凹凸纹理 _RimColor("Rim Color",Color) = (0.17,0.36,0.81,0.0) //边缘颜色 _RimPower("Rim Power",Range(0.6,9.0)) = 1.0 //边缘颜色强度 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // #pragma surface surf Lambert // Use shader model 3.0 target, to get nicer looking lighting #pragma target 3.0 sampler2D _MainTex;//主纹理 sampler2D _BumpMap;//凹凸纹理 float4 _RimColor;//边缘颜色 float _RimPower;//边缘颜色强度 struct Input { float2 uv_MainTex;//纹理贴图 float2 uv_BumpMap;//法线贴图 float3 viewDir;//观察方向 }; void surf (Input IN, inout SurfaceOutputStandard o) { //表面反射颜色为纹理颜色 o.Albedo = tex2D(_MainTex,IN.uv_MainTex).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" }

转载请注明原文地址: https://www.6miu.com/read-63270.html

最新回复(0)