博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity Built-in Shader详解三
阅读量:4707 次
发布时间:2019-06-10

本文共 903 字,大约阅读时间需要 3 分钟。

上次讲的是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

       Unity Shader/Transparent Cutout/Vertex-Lit

 

       (2)Transparent Cutout Diffuse

        Unity Shader/Transparent Cutout/Diffuse

 

       (3) Transparent Cutout Specular

       Unity Shader/Transparent Cutout/Specular

 

      (4) Transparent Cutout Bumped Diffuse

       Unity Shader/Transparent Cutout/Bumped Diffuse

 

 

       (5)Transparent Cutoff Bumped Specular

       Unity Shader/Transparent Cutout/Bumped Specular

 

 

       (6) Transparent Cutout Soft Edge UnLit

       这个是官方文档里面没有记录的,估计是后面新加入的。这个Shader绘制物体的正反两面,不受光照影响,常常用来绘制花草,树木,叶子。

       他包含了两个Pass,第一次将对象中Alpha大于alpha cutoff的部分以不透明的方式绘制。第二次关闭写zbuffer后,以半透明的方式绘制Alpha小于alpha cutoff的部分。这样做可以将绿草这种半透明的对象不需要排序就能绘制正确。

转载于:https://www.cnblogs.com/xpvincent/p/3168931.html

你可能感兴趣的文章
spring+springmvc+mybaties整合实例
查看>>
window.open 子窗口关闭刷新父页面
查看>>
Hibernate的几种主键生成策略
查看>>
“速达”app电梯演说
查看>>
Crawl(1)
查看>>
设备事件
查看>>
vue入门:(组件)
查看>>
CodeForces 173A Rock-Paper-Scissors(数论)
查看>>
http--->http缓存机制系统梳理
查看>>
day14(内置函数)
查看>>
JavaWeb中四大域对象的作用范围
查看>>
冲刺第十九天
查看>>
Appium环境的安装以及一路上的坑
查看>>
【原创】红客闯关游戏部分题解
查看>>
zookeeper在集群负载均衡中的应用
查看>>
移动架构之MVP框架
查看>>
css “裁剪”图片(显示图片的一部分)
查看>>
layui框架学习记录
查看>>
C/C++知识要点4——printf函数以及cout的计算顺序
查看>>
UVA225 Golygons 黄金图形(dfs+回溯)
查看>>