Unity3D内置Shader翻译三
2014-03-18 17:30
232 查看
上次讲的是Transparent Shader Family,他们是绘制半透明的对象使用的,但他们并不能满足我们全部的要求。
Transparent Cutout Shader Family是对半透明对象Shader的一类补充,与Transparent Shader Family有所区别的是:Cutout Shader Faimily中的Shaders不允许绘制部分透明的区域。就是说,使用这种Shader绘制出来的对象,要么是全透明,要么是半透明。使用这个家族 Shader的对象通常用来转换和接受阴影。半透明对象中常有的排序问题在使用这类Shader的时候不存在。
这个家族里面的所有Shader都定义了一个Alpha Cutout的数值,纹理中alpha大于Alpha Cutout数值的,被认为是不透明的,否则就是全透明的。通过这个alpha cutoff数值,我们可以控制哪些区域全透明,哪些区域不透明。(也可以用来做一些动画的控制,你懂的)
这个家族只包含了6个Shader,分别是
(1) Transparent Cutout Vertex-Lit
(2)Transparent Cutout Diffuse
(3) Transparent Cutout Specular
(4) Transparent Cutout Bumped Diffuse
(5)Transparent Cutoff Bumped Specular
(6) Transparent Cutout Soft Edge UnLit
这个是官方文档里面没有记录的,估计是后面新加入的。这个Shader绘制物体的正反两面,不受光照影响,常常用来绘制花草,树木,叶子。
他包含了两个Pass,第一次将对象中Alpha大于alpha cutoff的部分以不透明的方式绘制。第二次关闭写zbuffer后,以半透明的方式绘制Alpha小于alpha cutoff的部分。这样做可以将绿草这种半透明的对象不需要排序就能绘制正确。
Transparent Cutout Shader Family是对半透明对象Shader的一类补充,与Transparent Shader Family有所区别的是:Cutout Shader Faimily中的Shaders不允许绘制部分透明的区域。就是说,使用这种Shader绘制出来的对象,要么是全透明,要么是半透明。使用这个家族 Shader的对象通常用来转换和接受阴影。半透明对象中常有的排序问题在使用这类Shader的时候不存在。
这个家族里面的所有Shader都定义了一个Alpha Cutout的数值,纹理中alpha大于Alpha Cutout数值的,被认为是不透明的,否则就是全透明的。通过这个alpha cutoff数值,我们可以控制哪些区域全透明,哪些区域不透明。(也可以用来做一些动画的控制,你懂的)
这个家族只包含了6个Shader,分别是
(1) Transparent Cutout Vertex-Lit
(2)Transparent Cutout Diffuse
(3) Transparent Cutout Specular
(4) Transparent Cutout Bumped Diffuse
(5)Transparent Cutoff Bumped Specular
(6) Transparent Cutout Soft Edge UnLit
这个是官方文档里面没有记录的,估计是后面新加入的。这个Shader绘制物体的正反两面,不受光照影响,常常用来绘制花草,树木,叶子。
他包含了两个Pass,第一次将对象中Alpha大于alpha cutoff的部分以不透明的方式绘制。第二次关闭写zbuffer后,以半透明的方式绘制Alpha小于alpha cutoff的部分。这样做可以将绿草这种半透明的对象不需要排序就能绘制正确。
相关文章推荐
- Unity3D内置Shader翻译一
- Unity3D内置Shader翻译二
- Unity3D Shader官方教程翻译(七)----Shader语法:Pass的Culling & Depth Testing
- Unity3D Shader官方教程翻译(九)----Shader语法:Pass的雾化处理
- Unity3D Shader官方教程翻译(八)----Shader语法:Pass的纹理处理 .
- Unity3D Shader官方教程翻译(九)----Shader语法:Pass的雾化处理
- Unity3D Shader官方教程翻译(十)----Shader语法:Pass的Alpha测试
- Unity3D Shader官方教程翻译(一)
- Unity3D Shader官方教程翻译(八)----Shader语法:Pass的纹理处理
- Unity3D Shader官方教程翻译(十)----Shader语法:Pass的Alpha测试
- Unity3D Shader官方教程翻译(九)----Shader语法:Pass的雾化处理
- Unity3D Shader官方教程翻译(十一)----Shader语法:Pass的Blending(混合)
- Unity3D Shader官方教程翻译(十三)----Shader语法:Pass的Name
- Unity3D Shader官方教程翻译(十一)----Shader语法:Pass的Blending(混合)
- Unity3D Shader官方教程翻译(十)----Shader语法:Pass的Alpha测试
- Unity3D Shader官方教程翻译(十)----Shader语法:Pass的Alpha测试
- Unity3D Shader官方教程翻译(十五)----Shader语法 UsePass
- Unity3D Shader官方教程翻译(一)
- Unity3D Shader官方教程翻译(十二)----Shader语法:Pass的标记
- Unity3D Shader官方教程翻译(十一)----Shader语法:Pass的Blending(混合)