shaderLab关键字和函数

来源:互联网 发布:unity3d基础教程 编辑:程序博客网 时间:2024/05/26 12:59
转载:http://superherosk123.iteye.com/blog/1166484
 
 
 
SubShader{
Tags{"Queue"="Transparent"} //渲染完不透明物体,再渲染当前物体

GrabPass{} //将当前屏幕抓取到_GrabTexture纹理变量中.之后的pass可以使用这张纹理.

Pass{
Name "passName" //给pass起名
Material{
//[]取值符号
Diffuse[_diffuseColor] //反射光,颜色
Ambient[_ambient] //环境光,颜色
Specular[_specularColor] //高光颜色
Shininess[_shininess] //高光强度
Emission[_emissionColor] //自发光,颜色,
}

ColorMaterial AmbientAndDiffuse | Emission //使用顶点颜色,计算顶点光照.
SeparateSpecular On //高光放到pass的最后
ColorMask RGB //开启rgb通道.注意:值rgba的任意组合,值为0时,关闭所有通道,
Cull off //剔除规则,back,front,off
AlphaTest Greater[_Cutoff] //透明测试,greater,GEqual,Less,Lequal,Equal,NotEqual,Always,Never.
Lighting On //光线 on,off
SetTexture[_MainTex]{
Combine primary * texture double,primary * texture
/**组合rgb和a.
rgb部分                 , a部分
primary:顶点颜色,
texture:当前纹理颜色,
previous:上一次当前位置的颜色,
constant: 使用constantColor[_color]赋值后的颜色值.
double : 表示2倍,quad : 4倍.
*/
}
ZWrite off //不写入深度值
Offset -1,-1 //指定深度缓冲的偏移.只能是 常量
ZTest Less //深度测试.
Color(1,1,1,1) //顶点光线关闭后,使用此颜色值
Blend SrcAlpha OneMinusSrcAlpha //alpha混合
/**
Blend off 关闭.
语法:Blend srcFactor dstFactor
One: 全部值
zero:
srcColor: 当前颜色
srcAlpha:
dstColor: 帧缓冲(目标)源颜色
dstAlpha:
OneMinusSrcColor:1 - srcColor
OneMinusSrcAlpha:1 - srcAlpha
OneMinusDstColor:1 - dstColor
OneMinusDstAlpha:1 - dstAlpha
**/
Fog{
mode exp
color[_DiffuseColor]
Density 1
}

BindChannels{ //发送的顶点数据与gpu 寄存器绑定.
Bind "Vertex" vertex
/**
Bind "source" target
source:
vertex,normal,tangent,texcoord,texcoord1,color
target:
vertex,normal,tangent,texcoord0,texcoord1,texcoord,color.
*/
}
Tags{ //控制渲染引擎执行顺序.
"LightMode" = "always"
}
}
}
原创粉丝点击