unity如何让物体高亮_Unity3D Shader:遮挡高亮效果

c6692a753f6dddbb107eba6472ae323c.png

首先看一下最终实现的效果:

b75735a6c7ec40ff7d799050780cb548.gif

遮挡高亮是一种游戏很常见的效果,在被其他物体遮挡了之后,还能显示出角色的位置,还可以用来标记墙后面敌人的位置。

7c1d7cc3016254a152e217f9d83f9adf.png

a1823ba0a85b1d8dbde4b7ea65f5d0d0.png

我们来解析一下这个效果,首先我们需要一个单独的Pass来处理被遮挡的效果,这个Pass核心要点就是使用ZTest Greater,默认的ZTest 是LEqual(小于等于)则写入深度缓存,现在则变成了离的远的才会写入,就可以显示被遮挡的物体了。然后另一个Pass用来直接渲染我们的物体,可以为他加上光照等等的效果,我们下面来实现这个效果。

1 Setup

首先我们简单设置一下场景,新建shader和材质,新建一个胶囊体和一个立方体,把胶囊体插入到立方体的内部,有这么一个遮挡关系就行了。

2896bef8aea04ba0e4af5ece9ca00e51.png

2 Shader

首先我们将原始的Pass复制一次,还需要注意Pass的顺序,第一个Pass才是遮挡的效果

首先新建一个变量来控制遮挡的颜色

_OcclusionColor ("OcclusionColor", Color) = (1, 1, 0, 0)
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值