查看: 1544|回复: 0
打印 上一主题 下一主题

Unity Built-in Shader详解三

[复制链接]

5552

主题

2

听众

8万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
11

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-6-27 14:44:20 |只看该作者 |倒序浏览
Unity Built-in Shader详解三

上次讲的是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
            shader-TransCutVertexLit-01.jpg (33.02 KB)
2011-1-6 08:39
       (2)Transparent Cutout Diffuse
          shader-TransCutDiffuse-02.jpg (32.03 KB)
2011-1-6 08:39
       (3) Transparent Cutout Specular
            shader-TransCutSpecular-03.jpg (32.88 KB)
2011-1-6 08:39
      (4) Transparent Cutout Bumped Diffuse
            shader-TransCutBumpedDiffuse-04.jpg (35.46 KB)
2011-1-6 08:39
       (5)Transparent Cutoff Bumped Specular
            shader-TransCutBumpedSpecular-05.jpg (37.18 KB)
2011-1-6 08:39
       (6) Transparent Cutout Soft Edge UnLit
       这个是官方文档里面没有记录的,估计是后面新加入的。这个Shader绘制物体的正反两面,不受光照影响,常常用来绘制花草,树木,叶子。
       他包含了两个Pass,第一次将对象中Alpha大于alpha cutoff的部分以不透明的方式绘制。第二次关闭写zbuffer后,以半透明的方式绘制Alpha小于alpha cutoff的部分。这样做可以将绿草这种半透明的对象不需要排序就能绘制正确。

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-2-8 20:41 , Processed in 0.062305 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部