![](https://i-blog.csdnimg.cn/direct/8b905285a7d444f498bc3939f2b6cf51.png)
Spatiotemporal Variance-Guided Filtering
- 切面深度差异
- macro normal差异
- 考虑variance的luminance差异
1.切平面深度差异
SVGF 过滤过程中切平面上深度差异引导的权重
公式等价于:
- 当分子(深度差)较小 时,指数项接近 e⁰=1,即权重较大,意味着两个像素点相似,可以相互影响。
- 当分子(深度差)较大 时,指数项趋近于 e⁻ᵏ(接近 0),权重变小,表明它们的影响较小,以避免跨物体边界的错误平滑。
2.macro normal差异
macro normals比如说那个方块是木块,忽略上面的木纹细节法线贴图
3.考虑variance的luminance差异
Variance
首先看AB点的颜色差异,并且会除以B点周围颜色的标准差,防止B点是因为噪声造成的颜色差异,如fireflies等原因的误差。
-用luminance不用RGB防止预先截断denoise之后变暗
SVGF-ASVGF效果及改进方案补充:
- SVGF在noise和overblur中间trade off会倾向于选择overblur。而且有阴影滞后的不足。
- 改进后的ASVGF更加精准地判断temporal地不连续情况,解决阴影滞后等的问题,trade off倾向于noise而避免overblur
RAE
Recurrent AutoEncoder
输入G-buffer和noise的图,漏斗形结构,每一层又循环给自己,输出denoise的图
RAE-SVGF对比
RAE明显的好处
在不同spp下performance是固定的
Practical Industrial Solution 具体其他降噪方法:
TAA
上图等于2*2倍upsampling
MSAA vx SSAA
same primitive only shaded once
reuse samples across pixels
SSAA
上图例子中have to be 4 times per pixel
游戏渲染百分比120% 200%就是SSAA, super costly
Imaged based
SMAA (Enhanced subpixel morphological AA)
时间顺序 FXAA -> 改进后:MLAA(morphological AA) -> SMAA
P3矢量化
正常有SMAA效果比MSAA好
注:G-buffer是绝对不能反走样的。有意义的数值不用反走样,最终图像才需要反走样。比如p4如果把depth gbuffer给aa了,前景后景黑白平均得出来的灰色深度啥也不是
Temporal Super Resolution
1080p比540p多4倍,如果taa的sample数量比这还多理论上就会更清晰
Deferred Shading
Why:
Originally invented to save shading time
Triangles -> fragments -> depth test -> shade -> pixel (传统渲染管线)
Most fragments will not be seen in the final image
Can we only shade those visible fragments?
How:
Just rasterize the scene twice (延迟渲染管线)
Pass 1: no shading, just update the depth buffer
Pass 2 is the same (why does this guarantee shading visible frag. only?)
Complexity: O(#fragment * #light) -> O(#vis. frag. * #light)
Issue
anti-aliasing almost completely solved by TAA
👉Tiled Shading vs Clustered Shading
LOD
Popping artifacts 突然切换lod出现的瑕疵-用TAA解决
Nanite-动态加载lod
GI solutions
都用RTRT好是好但是帧率上不去
SSR for a rough GI approximation
- Upon SSR failure, switching to more complex ray tracing
- Either hardware (RTRT) or software (?)