Shader "Custom/shaderOne"
{
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 //range范围
_Emission("Emission",color)=(1,1,1,1)
_MainTex("MainTex",2d)=""{ } //纹理混合texgen objectlinear
_SecondTex("SecondTex",2d)=""{}
_Constant("ConstantColor",color)=(1,1,1,0.3)
}
SubShader
{
Tags { "Queue" = "Transparent" } //更改渲染队列 Unity帮助文档可查subShader Lab
//必须使用pass命令去编写一个渲染通道
pass{
Blend SrcAlpha OneMinusSrcAlpha //半透明显示
//描述颜色信息
//color(1,0,0,1) //红,绿,蓝,Alpha
//color[ _Color] //[]代表是一个参数值,不是一个固定值
material{ //材质命令块
diffuse[_Color] //材质漫反射颜色,材质本身颜色
ambient[_Ambient] //环境光
specular[_Specular] //高光
shininess[_Shininess] //浮点值,决定被高光反射的部分区域,越光滑值越高
emission[_Emission] //自发光
}
lighting on //启用光照
separatespecular on //光滑
settexture [_MainTex]{ //纹理,一个settexture只能带上一个参数
combine texture *primary double //合并纹理,primary代表前面计算了所有材质和光照之后的颜色 ,double 代表颜色值*2 ,quad代表颜色值*4
}
//第二张纹理
settexture [_SecondTex]{ //纹理,一个settexture只能带上一个参数
constantColor[_Constant] //恒定颜色
combine texture*previous double,texture*constant
//combine texture *previous double ,texture*constant //合并纹理,previous表示用当前采样到的纹理去采样之前所有计算和采样后的结果 透明化处理,镂空效果 ,texture==Alpha通道处理
}
}
}
}
网友评论