unity 特效shader下载_二十:Unity 后处理 Bloom mask,基于深度和单个物件的Bloom

v2-affdd469c56bf97f66880d9e958aeb06_1440w.jpg?source=172ae18b

后处理效果,在游戏画面表现中,是很常用的,Bloom是其中之一。

在我当前项目的实践中,美术在调节战斗场景表现的过程中,提出了两个需求:

  • 希望让场景中远景有较强的bloom效果,但是近景尽量少受到Bloom影响,且能自由调节

无bloom效果

v2-0c00105f94321daabc57ab638bfba6a8_b.jpg
无bloom效果

全局bloom效果,可以看到,远景和近景,包括近景的Cube,都呈现较强的Bloom效果

v2-be634f4de66faa05eeecba3e0fe37a3e_b.jpg
全局bloom效果

基于深度的Bloom强度调节,对比可见,远景Bloom强度不变,中景略低,近景几乎没有

v2-e09b4b3687c6393f8a4d98c54cf3fc5c_b.jpg
基于深度的Bloom强度调节

结果上,这是美术希望得到的场景效果,美术可以根据深度自由调节Bloom强度

  • 希望对某些攻击的刀光,特效等,强化Bloom效果(特别是将近景Bloom调弱的情况下),达到突出打击感的效果

这个需求的本质,就是希望针对单个物体(我们的需求主要是特效)调节其Bloom强度,例如:左cube不受Bloom影响,中cube受一点影响,右cube受强影响

v2-5461e8fb6737193424d2e2a2bc3f0944_b.jpg

以上是结果展示,我来简单说下解决思路和方法。

  • 需求一:希望让场景中远景有较强的bloom效果,但是近景尽量少受到Bloom影响,且能自由调节

这个需求的解决思路比较简单,核心是两点:

  1. 获取渲染的深度图
  2. 将调节的曲线和深度映射,计算出最终的效果

以下是我基于Unity 官方PostProcessing V2做的扩展

v2-486e332be1663d35e02ed0d3d923df6c_b.gif
示例

想要在shader中获取深度图,需要开启camera的depth开关

camera

第二步,将根据深度映射的curve,转换未一张lut贴图,在Shader中取值

v2-09b2ea60a12012406779020eb529eca1_b.jpg
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值