[Unity Shader] Fixed Function Shader

    xiaoxiao2021-03-25  127

    Shader "Custom/FixedFunction" { Properties{ //自身颜色 _Color("Main Color",color) = (1,1,1,1) //暗部颜色 _Ambient("Ambient",color)=(0.3,0.3,0.3,0.3) //高光颜色 _Specular("Specular",color)=(1,1,1,1) //高光区域范围 _Shininess("Shininess",range(0,8)) = 4 //自发光 _Emission("Emission",color)=(1,1,1,1) } SubShader { pass { material{ diffuse[_Color] ambient[_Ambient] specular[_Specular] shininess[_Shininess] emission[_Emission] } //开启光照模型 lighting on //开启高光分离 separatespecular on } } } FixedFunctionShaderTransparent Shader "Custom/FixedFunction2" { Properties{ //自身颜色 _Color("Main Color",color) = (1,1,1,1) //暗部颜色 _Ambient("Ambient",color) = (0.3,0.3,0.3,0.3) //高光颜色 _Specular("Specular",color) = (1,1,1,1) //高光区域范围 _Shininess("Shininess",range(0,8)) = 4 //自发光 _Emission("Emission",color) = (1,1,1,1) //纹理属性 _MainTex("MainTex",2D) = ""{} //第二张纹理属性 _SecondTex("SecondTex",2D) = ""{} //不通过纹理Alpha来控制透明度 _Constant("ConstanColor",color)=(1,1,1,0.3) } SubShader{ //标签来设置渲染队列顺序 Tags{"Queue"="Transparent"} //透明 pass { Blend SrcAlpha OneMinusSrcAlpha //Alpha blending material{ diffuse[_Color] ambient[_Ambient] specular[_Specular] shininess[_Shininess] emission[_Emission] } //开启光照模型 lighting on //开启高光分离 separatespecular on //设置纹理属性 settexture[_MainTex] { combine texture * primary double //primary代表先前计算的顶点光照的颜色 } settexture[_SecondTex] { constantColor[_Constant] combine texture * previous double,texture * constant //previous代表之前所有计算的光照颜色 } } } }

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

    最新回复(0)