后处理调研

相关论文和博客

  • Post-processing Effects on Mobile: Optimization and Alternatives

https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/post-processing-effects-on-mobile-optimization-and-alternatives

  • Bandwidth Efficient Rendering ARM — 这篇不错,讲述了移动端下的渲染优化应该怎么做

HDR 管线研究

Volumetric Fog And God Ray

UE4:三种圣光 God Rays 的做法

[技巧分享] 体积雾圣光 | 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,但是从美观来说并不理想。

带宽优化

Untitled

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

Untitled

其中的一个关键是如何通过深度来还原场景信息

【知识补充】深度信息还原位置和法线

  • HBAO+

NVIDIA Horizon-Based Ambient Occlusion Plus (HBAO+)