Shaders: ShaderLab & Fixed Function shaders

Posted 西湖盗月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shaders: ShaderLab & Fixed Function shaders相关的知识,希望对你有一定的参考价值。

 

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" 


}

以上是关于Shaders: ShaderLab & Fixed Function shaders的主要内容,如果未能解决你的问题,请参考以下文章

Unity ShaderLab学习总结

ShaderLab和CG/HLSL的一些数据类型归纳(转)

ShaderLab学习小结简单产生阴影

ShaderLab学习小结(十四)点光源问题

ShaderLab学习小结接收平行光阴影

ShaderLab学习小结接收点光源阴影