图形 4.1 Bloom算法 游戏中的辉光效果实现

本文探讨了游戏开发中实现Bloom效果的几种方法,包括使用Mask蒙版、屏幕深度图和Alpha值计算。介绍了如何通过Shader和CommandBuffer实现选择性Bloom,并分析了使用SRP创建BloomMask的优势。此外,还讨论了直接使用贴图贴在屏幕上的简单方法及其局限性。总结了Bloom效果在性能和美术设计上的考量,以及未来在手机游戏中的应用前景。
摘要由CSDN通过智能技术生成

链接: 图形 4.1 Bloom算法 游戏中的辉光效果实现.

Bloom效果的实现

原图:没有Bloom效果的图片
在这里插入图片描述

最简单的实现

在这里插入图片描述
实现原理:如笔记所说,提取原图像,给定一个阈值,使用高斯模糊阈值范围上的图像。再与原图相加,获得bloom效果

代码查看:

使用Mask蒙版的Bloom

对屏幕显示时使用

实现方式:普通Bloom中挂载在摄像机的脚本会用来计算高斯模糊,挂在脚本上的shader用来渲染图像。因此,只要在摄像机的Bloom脚本中添加Mask蒙版。同时在Shader上添加Mask贴图位置并计算即可。
**效果:**这里使用原图的红通道作为蒙版,可以看出,效果时比较明显(但不好看)
**缺点:**不能随时调整图像。对
在这里插入图片描述
使用左黑右白贴图作为蒙版
在这里插入图片描述

对场景本身的有选择Bloom效果

因为现在只是一个面片,所以不好表现多物体有前后强落对比时候的提供使用屏幕深度图做为蒙版,或者使用alpha(透明物体的Bloom效果应该更强),选择性的表现Bloom效果。
使用Alpha的例子:
在这里插入图片描述

Alt
链接: Unity 关于仿崩坏3部分Bloom(部分泛光)效果实现原理(附源码).

说这么多,不如动手画。

在之前链接: 几何细分着色器.里有写过一个通过屏幕绘制的方式只做mask。理论上也时可以套用,就是脚本太多出现套娃情况,对一个代码苦手(ctrl+c+v玩家),整理起来有点困难啊。
过去的案例
在这里插入图片描述

小总结

bloom效果太好用了,本身的迷离感与幻想感很容易在作品中被过量使用。虽然现在还存在性能上的问题。但未来会成为手机游戏的常用效果(已经是了)。总的来看,效果是复制美术表示的技术手段,在学习时候也看出已经在脚本上遇到越来越多问题。之后需要相同学习一波

一条看完BloomMask(看答疑后总结)

使用Alpha值计算

链接: 利用alpha值(0或1)来选取bloom的区域.
请添加图片描述
补充::Gold Ray也在链接中,使用径向模糊

使用SRP创建BloomMask

链接: ScriptableRenderPass创建BloomMask.
这个是比较推荐的方法,因为要是使用alpha通道作为BloomMask,对美术资产制作是多一个步骤,同时,当资源数量特别庞大以后,对整个优化也有很大影响。

使用Command Buffer

链接: Command Buffer创建BloomMask.
·通常bloom作为后期处理作用在相机上,但是,摄像机的纹理是管道中已经发生的所有渲染的融合

·为了在渲染管线中获得关于像素的更多信息,我们需要将该像素的信息编码到缓冲区中

·因此我们需要将我们想要实现发光的对象到一个缓冲区中,当需要实现bloom效果时,只需要读我们的glow buffer,模糊我们想要实现bloom效果的像素

结论:没有SRP时候可以考虑使用

直接使用贴图贴在屏幕上

常用于二维游戏,但缺少拓展性,看情况使用,何必绕一大圈(安慰自己。。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值