properties
material
lighting
serrexture
Blend
当前渲染的物体为源,其他物体为目标
制作半透明的物体要关注渲染队列
Shader "Sbin/ff2" {
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)
_Shiness("Shininess", range(0,8)) = 4
_Emission("Emission", color) = (1,1,1,1)
_MainTex("MainTex", 2D) = "white"{}
_SecondTex("SecondTex", 2D) = "white"{}
_Constant("ConstantColor", color) = (1,1,1,0.3)
}
SubShader {
Tags{"Queue" = "Transparent"}//渲染队列
pass{
Blend SrcAlpha OneMinusSrcAlpha//alpha混合
//color(1,0,0,1)
//color[_Color]
Material
{
diffuse[_Color]//材质漫反射颜色,本身固有的颜色
ambient[_Ambient]//环境光对物体的影响
specular[_Specular]//高光颜色
shininess[_Shiness]//高光范围
emission[_Emission]//自发光
}
Lighting on//启用光照on/off
SeparateSpecular on//独立的镜面的高光on/off
SetTexture[_MainTex]
{
Combine texture * primary double//合并
//texture为传进来的贴图,primary为之前计算的顶点光照,double两倍,quad四倍
}
SetTexture[_SecondTex]//多张贴图,settexture纹理混合不是无限的显卡有一个混合纹理最大的个数
{
//matrix[]可传入矩阵
ConstantColor[_Constant]
Combine texture * previous double, texture * constant//合并
//texture为传进来的贴图,previous当前采样的纹理去计算这个settexture之前所有光照和采样之后的解国,double两倍,quad四倍, 最后一个texture意思时取贴图的alpha通道进行透明
}
}
}
}