DLSS3.5 RayReconstruction

本文介绍了2023年游戏中如《cyberpunk2077》和《AlanWake2》使用的先进技术,如NVIDIA的DLSS3.5和RayReconstruction。Raytracing配合AI实现的denoiser和upsampling效果显著优于传统方法,特别是对于光线追踪的处理,AI的效率和精准度提升游戏开发效率。

在这里插入图片描述
2023年画面扛把子,cyberpunk2077和alan wake2都在猛用的技术,就快速记录下;

overview

  • ray reconstruct在dlss3.5中开始可以使用;
  • GPU则是所有的RTX系列GPU
  • 可以针对ray tracing的结果做类似dlss的TAA+Upsampling的工作,基于AI加持,效果远好于手撸denoiser
  • 效果拔群,尤其是path tracing,几乎是必备的条件;
  • ref:
  • https://www.nvidia.com/en-us/geforce/news/gfecnt/202310/alan-wake-2-dlss-3-5-full-ray-tracing-out-this-week/
  • https://www.nvidia.com/en-us/geforce/news/nvidia-dlss-3-5-ray-reconstruction/
  • https://zhuanlan.zhihu.com/p/658095581

传统光追

在这里插入图片描述
这里是简单的传统光追的管线,由于光追的性能消耗,所以还是以一个低分辨率的离散的方式来渲染,然后denoiser->up scale

为何传统的denoiser+upscale是AI擅长的

denoiser&传统的方式基本集中于spacial+temporal信息手撸(e.g. SVGF–The Spatio-Temporal Variance Guided Filter),根据各种情况来决定discard还是blend。。。
这里其实基本上就转化为TAA+Upscale的类似的问题,只是光追的情况比TAA情况更加复杂,手撸进行各种模式识别,显然干不过AI驱动的dlss;
想当年看各种TAA里的奇淫巧技,真的是恶心的不行,核心问题就是各种情况下,需要不同的处理方式,要想做好,就是一个要对n种情况识别出来,然后n中处理方法的情况;
简言之,这种问题就是一个AI适合的问题;

RayReconstruction

综上,这种n种情况,n中处理方式,就是一个training,然后输出即可;
在这里插入图片描述
在这里插入图片描述
道理就是这么个道理,里面黑盒的,反正效果各种好;

ray construction带来那些好处

  • 更清晰:反射更加清晰精准
  • 对光照变化的反馈更迅捷:可以更少的帧数得到足够好的结果,所以光线变化的时候,GI的反应足够快(传统需要很多帧,所以)
  • 开发更省力:最怕这种需要匠心手调的东西,实际做的时候真有点无底洞的感觉,现在能够基于训练整好,perfect
在Unity中集成DLSS(深度学习超级采样)技术,通常涉及使用NVIDIA提供的DLSS SDK,该SDK通过深度学习技术提升游戏性能,同时保持图像质量。DLSS依赖于NVIDIA RTX系列GPU的Tensor Core,通过AI驱动的超分辨率技术将低分辨率图像放大到更高分辨率[^1]。 ### 集成DLSS的基本步骤 1. **确保硬件和软件要求** - 使用支持DLSS的NVIDIA RTX GPU。 - 安装最新的NVIDIA驱动程序。 - 使用Unity 2020.3或更高版本。 - 安装NVIDIA DLSS SDK(可通过NVIDIA开发者网站获取)。 2. **导入DLSS插件** - 将DLSS SDK中的Unity插件包(通常为`.unitypackage`)导入到项目中。 - 插件通常包含必要的着色器、脚本和原生库。 3. **配置DLSS组件** - 在主摄像机上添加DLSS组件,通常为`DLSSComponent`或类似名称的脚本。 - 该组件负责控制DLSS的启用、分辨率缩放比例以及质量模式(如“Quality”、“Balanced”、“Performance”等)。 4. **调整渲染设置** - 确保Unity的渲染管线支持DLSS。对于URP(Universal Render Pipeline)或HDRP(High Definition Render Pipeline),可能需要额外的适配。 - 在渲染设置中启用DLSS后处理效果,确保在最终输出前应用DLSS的分辨率提升。 5. **处理深度和运动矢量缓冲区** - DLSS需要深度缓冲区和运动矢量缓冲区来优化帧重建。确保摄像机渲染时正确输出这些信息。 - 在Shader中使用`DepthPrePass`和`MotionVectors`通道,以提供DLSS所需的输入数据。 6. **调试与性能优化** - 使用NVIDIA Nsight Graphics等工具分析DLSS的性能表现。 - 调整DLSS的质量模式,以在性能和图像质量之间取得平衡。 ### 示例代码片段(C#控制DLSS启用) ```csharp using UnityEngine; using NVIDIA; public class DLSSController : MonoBehaviour { public DLSSFeature dlssFeature; void Start() { if (dlssFeature != null && DLSS.IsSupported()) { dlssFeature.enabled = true; dlssFeature.renderScale = 1.5f; // 设置渲染缩放比例 dlssFeature.qualityMode = DLSSQualityMode.Balanced; // 设置质量模式 } else { Debug.LogWarning("DLSS is not supported on this hardware."); } } } ``` ### 相关问题 1. DLSS在Unity中如何影响帧率和图像质量? 2. 如何在Unity中调试DLSS的渲染输出? 3. DLSS与FSR(FidelityFX Super Resolution)在Unity中的集成方式有何不同? 4. Unity的URP和HDRP对DLSS的支持有何差异? 5. DLSS需要哪些NVIDIA驱动和硬件支持?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值