目录

UE4中的光追降噪:

主要思想:

Shadow 降噪:

Glossy反射降噪:

AO和Diffuse GI 降噪:


前记:主要是前几天看到了一个问题就是光追怎么降噪,毕竟在实时渲染中光追不可能采用高的spp。所以由这个问题,自己就跑去翻了一波书,做一下记录。------------------------博主:mx

UE4中的光追降噪:

主要思想:

在场景中,当试图解决渲染方程时,ue将出现的光路径分割开来。然后从不同的射线类型,例如,阴影,反射和漫反射射线,应用自定义过滤器。对于每个效果,使用较少的spp,并积极地去噪,以弥补样本数量的不足。我们利用局部特性来提高去噪质量(例如光的大小或glossy BRDF lobe),并将结果组合起来生成与离线渲染器生成的图像接近的图像。这种技术称为分块光路滤波。

Shadow 降噪:

UE设计了一种专用的区域光阴影去噪算法。阴影降噪器具有空间和时间分量。空间分量的灵感来自最近基于局部遮挡频率分析的高效滤波器的工作,例如,针对软阴影的轴向滤波和Yan等人的剪切滤波。降噪器能够感知光源的信息,比如光源的大小、形状、方向、距离接收器的距离,以及阴影光线的击中距离。降噪器利用这一信息试图为每个像素推导出一个最佳的空间滤波器footprint。footprint是每像素的各向异性的变化方向。

下图显示了各向异性空间核的近似可视化。

------------------------博主:mx

核形状沿着阴影的方向延伸,从而在去噪后得到高质量的图像。降噪器的时间分量将每个像素的有效样本数量增加到8-16左右。如果启用时间滤波器,需要注意的是有轻微的时间滞后,而UE按照Salvi提出的方法进行时间clamping以减少滞后。

假设降噪器使用每个光源的信息,我们必须分别降噪每个光源投射的阴影。我们的降噪成本与场景中的光源数量成线性关系。然而,降噪后的结果质量比我们尝试在多个灯光下使用一个普通的滤波要高,因此ue在这些演示中选择了每个灯光一个滤波。

上图的输入图像采用每像素一个阴影光线的方式进行渲染,以模拟车顶巨大的矩形光源投射出的柔和光照。在这样的采样率下,得到的图像是非常嘈杂的。我们的空间降噪器去除了大部分的噪声,但仍保留了一些伪影。结合时间和空间去噪分量,结果接近于每像素2048射线渲染的地面真实图像。

Glossy反射降噪:

通过光线追踪获得完美光滑的镜面反射是不错的,但在现实世界中,大多数镜面表面都不是镜面。它们的表面通常有不同程度的凹凸不平。通过光线追踪,人们通常会根据粗糙度和入射辐射,用数百到数千个样本随机取样材料的局部BRDF。这样做对于实时渲染是不切实际的。UE实现了一个自适应的多反射机制来驱动反射光线的生成。反射射线的发射受撞击表面粗糙度的控制,因此撞击到表面粗糙度较高的几何图元的射线被较早地杀死。平均而言,我们对每个像素只使用了两条反射光线,也就是两次反射反弹,所以对于每个可见的阴影点,我们只有一个BRDF样本。结果是非常有噪声的,我们再次应用了复杂的降噪滤波器来重建接近地面真实的光滑反射。我们设计了一种只对入射辐射项的反射有效的降噪算法。光滑反射是入射亮度项L和在阴影点周围的半球上的BRDF f的乘积的积分。把乘积的积分分解成两个积分的近似乘积

这就简化了降噪任务。我们只对入射辐照度

进行降噪。BRDF积分可以分离和预积分。这是光照探针的常用近似。此外,镜面反照率也包含在BRDF中,所以通过只过滤辐亮度项,我们不需要担心纹理细节的过度模糊。该滤波器堆栈具有时间和空间分量。对于空间部分,我们在屏幕空间中推导了一个各向异性形状的核,它适应局部阴影点的BRDF分布。核的估计是通过将BRDF lobe投影回屏幕空间,基于击中距离,表面粗糙度和法线。得到的内核每个像素具有不同的内核大小和方向。

------------------------博主:mx

下图是基于brdf的反射滤波器核的可视化

UE基于brdf的滤波核的另一个值得注意的特性是,它可以通过从镜像表面过滤来生成看起来比较粗糙的光滑表面。这个说起来比较难理解,可以看一下下面的图。

这个空间滤波器能够如实地重建中等粗糙度(GGX平方粗糙度小于0.25)的光滑表面。对于较高的粗糙度值,我们采用有偏随机BRDF采样,并结合时间分量和空间分量,以获得更好的去噪质量。在反射表面上的时间再投影需要被反射物体的运动矢量,但是这可能很难获得。此前,Stachowiak等人利用反射虚拟深度重构了相机运动引起的平面反射镜内反射物体的运动矢量。然而,这种方法不适用于曲面反射器。Hirvonen等人介绍了一种新方法,将每个局部像素邻域建模为一个薄透镜,然后使用薄透镜方程推导出反射物体的运动矢量。它适用于曲面反射器,我们用这种方法在时域滤波器中计算运动矢量。

------------------------博主:mx

AO和Diffuse GI 降噪:

ue的漫反射滤波器是基于Mehta等人设计的用于漫射间接照明的轴向过滤器。由于在官方演示中使用的是没有任何预先计算的蛮力路径跟踪,ue将基于Mehta等人的空间滤波器与时间滤波器相结合,以达到预期的质量。并且光照贴图是从附近的光照贴图texels中获取到的,所以使用时间抗锯齿和空间滤波器相结合能够提供足够好的质量。这时只在间接的漫反射部分应用降噪,以避免过度模糊纹理细节、阴影或高光,因为这些都会在在其他专用的降噪器中被单独过滤。对于空间滤波器,我们采用了世界空间空间内核,其footprint来源于Mehta等人提出的命中距离。适应滤镜尺寸与命中距离,避免在间接照明中模糊细节,并保持特征,如间接阴影更清晰。当与时间滤波器结合时,它还可以根据像素累积的重投影样本数量减少空间内核占用。对于具有更多时间累积样本的像素,我们应用更小的空间滤波器足迹,从而使结果更接近地面真实。下图显示了使用固定半径和基于光线命中距离和时间样本计数调整滤波半径的比较镜头。显然,使用经过调整的滤波器footprint可以在接触区域提供更好的细节。

同样的想法也有助于光线追踪环境遮挡去噪。下图比较了(a)降噪射线跟踪环境遮挡与恒定的世界空间半径,以及(b)降噪环境遮挡使用自适应核半径,自适应核大小是基于平均射线命中距离和累积时间样本计数计算得到的。

很明显,在降噪的环境遮挡下,使用自适应滤波器尺寸可以更好地保存接触细节。

------------------------博主:mx

RealTimeRayTracing:光追降噪[1]--UE4中的光追降噪相关推荐

  1. ue4 离线渲染_[译]Real Shading in Unreal Engine 4(UE4中的真实渲染)(2)

    利用假期接着把剩下的部分搞完吧,其实,纯粹的翻译应该还是比较简单的,但是,为了更好地理解,我一般都会多找一些资料来进行互相印证.在上面一部分Shader Model的改变过程中,我主要是参考了一些PB ...

  2. ue4小白人骨骼定义_动画短片在UE4中的工作流程都有哪些?来看游戏建模师如何分析的...

    CG摄影师兼导演Jeffy Zachariah谈到了他的动画短片WAKE的制作:在UE4中与Sequencer合作,摄像机设置,资产制作等. 想法 将动画视为通过运动说出来的故事或表情,甚至可以只通过 ...

  3. mfc三视图和斜等测图实现_如何在UE4中实现NPR(非真实感)渲染效果?

    如何在UE4中实现NPR(非真实感)渲染效果?本文作者尝试在UE4中制作了秋叶原南出口的画面,并分享了全部的制作过程,希望对大家有所帮助. 在虚幻引擎中制作秋叶原南出口 我经常在artstation上 ...

  4. matlab光线追击,MATLAB在追迹光线计算中的应用

    原标题:MATLAB在追迹光线计算中的应用 李理,刘 健,彭广威,曾斌 (湘潭大学新材料研究中心,湖南湘潭411105) 摘要:给出了理想光具组系统矩阵的MATLAB计算程序,并借助MATLAB进行光 ...

  5. UE4中使用真实天空插件——TrueSky

    UE4中使用真实天空插件--TrueSky 1.简述 TrueSKY是一个软件开发套件,可以在各种平台上实时渲染逼真的天空,云彩和大气效果.经过多年研究和开发,它基于光散射和吸收的物理原理,并针对速度 ...

  6. 【UE4】将pmx导入到ue4中(obj-zip-mixamo绑骨)|模之屋模型导入UE4(较详细)

    前言:我用fbx导入mixamo会报错,所以想用obj格式试试. fbx导入↓ 效果预览: 目录 1.下载模型 2. 为blender安装插件 3.打开blender ​编辑 要删掉默认生成的方块!! ...

  7. ue4中隐藏灯光和相机图标_UE4中的光线追踪和SSGI照明研究

    AitorRández在最新研究中解释了他如何在UE4中进行照明工作,并共享了设置和场景以供下载.我叫AitorRández,我是比利时数字艺术与娱乐(DAE)最后一年的学生.我对环境艺术及其涉及的一 ...

  8. UE4中的PBR材质

    PBR材质系统原理简介 一.自然界材质 要学会使用PBR首先需要了解什么是PBR,需要从真实世界的这些PBR材质特有的属性拆分开来去了解他们,这样我们就需要了解光,物体表面材质以及光是如何与材质交互的 ...

  9. 在UE4中创建CG动画 How to create a movie in Unreal Engine 4 using Metahuman

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:1.55 GB |时长:1h 16m 你会学到什么 如何在 ...

最新文章

  1. 最新加州自动驾驶报告出炉,两家中国公司名列全球前五
  2. vscode打造golang开发环境以及golang的debug单元测试
  3. python3 如何给装饰器传递参数
  4. Linux|UNIX下LAMP环境的搭建及常见问题[连载4]
  5. C++ Primer 5th笔记(chap 16 模板和泛型编程)成员模板
  6. hexo博客生成博文,当生成的文章数量超过1000时,耗尽所有内存资源后出现out of memory
  7. Swift基础语法: 30 - Swift的基类, 子类, 重写, 重写方法, 重写属性, 防止重写
  8. 细数Android开发者的艰辛历程,已拿offer附真题解析
  9. 南工院linux考试题库,操作系统复习题..doc
  10. java捕获子程序异常,防止异常与捕获Java中的异常
  11. vue ts 设置tslint提示_Typescript在Vue中的实践
  12. linux内核makefile详解,linux kernel编译Makefile和Kconfig,make menuconfig详解
  13. python动态创建字典_如何在Python中创建动态命名字典?
  14. 计算机网络连接图标 红叉,Win10网络图标显示红叉叉 检测不到网卡驱动解决方案...
  15. Java 编程(基础面试题)
  16. 淘宝小程序开发注意点
  17. oracle快速为所有表新增字段
  18. 【数模之数据分析-1】
  19. 有哪些有用的人际交往小常识?
  20. AirDrop是什么?

热门文章

  1. 英雄联盟自定义皮肤教程[使用篇]
  2. 四款画风清奇的减压小工具,资深职场员工的推荐,还不快收藏
  3. js实现word生成书签_js生成word中图片处理方法
  4. arcgis engine 将图层要素复制到另一个图层
  5. 今年计算机考研,到底有多难?
  6. java sdk qq授权登录
  7. 数字证书常见格式整理
  8. tft触摸屏C语言编程,stm32之TFT触摸屏(ILI9320):通过LCD_ShowChar显示的过程分析
  9. 白盒测试——基本路径测试
  10. 计算机网课课堂评价语,大学生课堂表现评语