Fixed Function Shader
Shaderlab基本结构
shder"name"{
//为shader定制属性,可在检视面板编辑
[Properties]
//shader主体,有且只有一个
SubShaders
//当subshaders不可执行时会运行
[FallBack]
}
Shaderlab代码
//shader学习步骤 1. 2. 3. 4. 。。。
Shader "Custom/Shader1"
{
//1.
properties{
//属性名称("显示在面板上的名称",类型)=默认值
_Color("color",Color) = (1,1,1,1) //颜色
//_Vector("vector",Vector) = (1,2,3,4) //向量类型
//_Int("int",Int) = 123//整数
//_Float("float",Float) = 5.5 //小数
//_Range("range",Range(1,10)) = 10 //范围
//_2D("texture",2D) = "white"{} //white指的是在没有图片的时候使用的颜色
//_Cube("cube",Cube) = "white"{}//天空盒
//_3D("texture",3D) = "white"{}//3d纹理
_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)=""
}
SubShader
{
//2.
//pass渲染通道
pass {
//3.
//颜色属性()固定值 []参数值
//color(1,1,1,1)
//color[_Color]
//光加入颜色,场景中物体处于片状
//4.
//加入material材质
material{
//材质漫反射
diffuse[_Color]
//6.
//只加入灯光不真实需要加入环境光
ambient[_Ambient]
//7.
//光滑物体的高光部分
specular[_Specular]
//8.
//描述高光反射的区域范围
shininess[_Shininess]
//9.
//自发光
emission[_Emission]
}
//5.
//只加入diffuse漫反射会导致颜色修改不能用因为没有光照
lighting on
//7.
//独立的镜面高光
separatespecular on
//10.
//贴图采样,一个settexture只能一个参数
settexture[_MainTex]
{
//合并,primary定点光照计算过后的结果
combine texture * primary double
}
//11.
//第二张纹理
settexture[_SecondTex]
{
//合并,previous之前所有计算和采样过后的结果
combine texture * previous double
}
}
}
}