Bloom泛光

泛光(Bloom) 是一种现实世界中的光现象,通过它能够以较为适度的渲染性能成本极大地增加渲染图像的真实感。用肉眼观察黑暗背景下非常明亮 的物体时会看到泛光效果。亮度更高的物体还会造成其他效果(条纹、镜头光斑),但这些效果不在经典的泛光 效果范畴内。我们的显示器(电视、TFT屏等)通常不支持HDR(高动态范围),因此实际上无法渲染太亮的物体。于是我们模拟了 当光线射到胶片(胶片次表面散射)或摄像机前(乳白色玻璃滤光片)时眼睛中出现的效果(视网膜的次表面散射)。这种效果不一定符合实际 情况,但它可以帮助表现对象的相对亮度,或者给屏幕上显示的LDR(低动态范围)图像添加真实感。

在这里插入图片描述
泛光可以用一个高斯模糊来实现。为了提高质量,我们将多个不同半径的高斯模糊组合起来。为了获得更好的性能,我们在大大降低的分辨率下 进行很宽范围的模糊。在UE 3中,高斯模糊的分辨率为1/4、1/8和1/16。而现在我们可以使用多种模糊,分辨率从1/2(Blur1)到1/32(Blur5)。

通过改变模糊效果的组合方式,我们可以进行更多的控制,取得更高的质量。为了获得最佳的性能,应该使用高分辨率模糊(小值)来实现较窄的模糊,而主要使用低分辨率模糊 (大值)实现较宽的模糊。

在这里插入图片描述

Bloom Convolution
Bloom Convolution效果使您能够添加自定义bloom内核形状,其纹理表示物理上逼真的Bloom效果,通过源图像的数学卷积来模拟引起绽放的相机或眼睛内的光的散射和衍射。内核图像。
在这里插入图片描述在这个例子中,布隆技术产生了从星形爆发到漫射发光区域的连续响应。

内核表示光学设备对视场中心的单点源的响应。源中的每个像素按照内核图像的规定向邻居贡献一些亮度。光源像素越亮,它产生的光亮就越明显。在引擎盖下,这种节能散射被表述为卷积运算并通过使用快速傅立叶变换(FFT)加速。

Bloom Convolution设计用于游戏或离线过场动画或高端硬件,而标准绽放应用于大多数游戏应用。在评估权衡时,标准绽放具有显着的性能优势,但它不保守(它可以导致图像的整体亮度)并且它缺乏Bloom卷积的视觉复杂性。

在这里插入图片描述
最近在研究three.js的一个案例:webgl_postprocessing_unreal_bloom.html,看UnrealBloomPass找到的这篇文章,顺藤摸瓜就找到大名鼎鼎的虚幻引擎unrealengine上面来了。里面文档齐全啊,真是个好宝藏,赶紧收藏。

文章来源:https://docs.unrealengine.com/en-us/Engine/Rendering/PostProcessEffects/Bloom
这是中文文档:https://api.unrealengine.com/CHN/Engine/Rendering/PostProcessEffects/Bloom/index.html