后处理调研
后处理调研
相关论文和博客
- Post-processing Effects on Mobile: Optimization and Alternatives
- Bandwidth Efficient Rendering ARM — 这篇不错,讲述了移动端下的渲染优化应该怎么做
HDR 管线研究
Volumetric Fog And God Ray
[技巧分享] 体积雾圣光 | God Rays Using Volumetric Fog(官方汉化)_哔哩哔哩_bilibili
(1) Geometry Material : 利用模型和材质在需要进行GodRay的地方进行放置,较为简单,但是看起来会比较廉价。
(2) LightShafts : 调整光源属性中LightShaft项,目前是只有方向光有这种功能。
LigthShaft中的实现其实很简单,即从整张画面中抽离出画面高亮的部分,对高亮部分做径向模糊(radial blur),然后将模糊的高光图也原图进行混合。
(3) Volumetric Fog : 自带圣光,但是开销较大。
科普 : GodRay是丁达尔效应的一种体现,在光的传播过程中,光线照射到粒子时,如果粒子大于入射光波长很多倍,则发生光的反射;如果粒子小于入射光波长,则发生光的散射,这时观察到的是光波环绕微粒而向其四周放射的光,称为散射光或乳光。丁达尔效应就是光的散射现象或称乳光现象。由于真溶液粒子直径一般不超过1nm,胶体粒子介于溶液中溶质粒子和浊液粒子之间,其直径在1~100nm。小于可见光波长(400nm~700nm),因此,当可见光透过胶体时会产生明显的散射作用。而对于真溶液,虽然分子或离子更小,但因散射光的强度随散射粒子体积的减小而明显减弱,因此,真溶液对光的散射作用很微弱。此外,散射光的强度还随分散体系中粒子浓度增大而增强。
所以说,胶体能有丁达尔现象,而溶液几乎没有,可以采用丁达尔现象来区分胶体和溶液,注意:当有光线通过悬浊液时有时也会出现光路,但是由于悬浊液中的颗粒对光线的阻碍过大,使得产生的光路很短。— 取自百度百科
Bloom
所有的Bloom大体都会分为3步
- Sperate : 分离出来超过亮度阈值的区域
- Blur : 将亮部进行模糊 (通常是高斯模糊或者卷积)
- Combine : 将模糊过的高光部分与原图像进行混合
但是有不少人提到过Unreal的泛光效果偏白,并且亮度过于集中,虽然这的确Physical Based,但是从美观来说并不理想。
带宽优化
Depth of Filed
官方文档在这方面做的不错
- 要注意的一点是焦距(Focal Length) 和 对焦距离 (Focal Distance) 的区别,焦距指的是镜头中心到成像背板的距离,而对焦距离(Focus Distance) 是指从摄像机镜头中心到对焦的拍摄对象的距离。
ToneMapping
当前ToneMapping的一些问题,对图像单独进行全局的ToneMap可能并不是可充分,会丢失掉HDR中的许多细节,所以需要再进行一次Local ToneMapping来进行处理。
Tonemapping不够用了: Local Tonemapping方案总结
Localized tonemapping – is global exposure and global tonemapping operator enough for video games?
- 色调映射(Tone mapping)是解决这个问题的良药。Tone mapping 有两种,一种是对屏幕上所有的像素用同一个函数调整亮度,即 Global tone mapping;另一种则会根据每个像素周围的像素智能地根据上下文 (context) 进行调整亮度,即 Local tone mapping,后者往往更为有效,并且逐渐
不过UE5已经推出了Local Exposure,所用的方法就是上文中利用Bialter Grid的方案 (Unreal 这图形Feature的更新速度也太快了,基本上啥都有)。
SSR
当前感兴趣的方法 : Stochastic Screen Space Reflections
传统方法的实现一言以蔽之就是在屏幕空间内做RayMarching,判断相交的像素,看起来如何加速RayMarching的效率是重中之重。
AO
- HBAO - Image-Space Horizon-Based Ambient Occlusion
其中的一个关键是如何通过深度来还原场景信息
- HBAO+