fixed function shader 用于在老式的显卡中:
使用shaderLab编写;
Shader "Yellows/ff2" {
Properties{
_MainColor("MainColor",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,2))=1
_Emission("Emission",color)=(1,1,1,1)
_MainTexture("MainTexture",2d)="White"{}
_SecondTexture("SecondTexture",2d)=""{}
_ConstantColor("ConstantColor",color)=(1,1,1,0.3)
}
subShader{
Tags{"Queue"="Transparent"} //控制渲染顺序;
pass{
Blend SrcAlpha OneMinusSrcAlpha //Alpha Blend
material{
diffuse[_MainColor]
ambient[_Ambient]
specular[_Specular]
shininess[_Shininess]
emission[_Emission]
}
lighting on
separatespecular on
settexture[_MainTexture]{
combine texture * primary double //combine:混合,使texture得rgb值乘以前面设置的光照顶点 double:2倍 quad:4倍
}
settexture[_SecondTexture]{
//combine texture * primary double //primary 不能用 只能得到当前贴图与前面的光照顶点所融合;
constantcolor[_ConstantColor] //如下行直接用constant引用alpha; 如不用此则在贴图上设置为Alpha from Grayscale
combine texture * previous double,texture *constant //previous 之前的所有处理;再combine 第二个参数texture为取当前贴图的alpha值做处理
}
}
}
}