想象一下你正在构建一个电子游戏世界,并且你希望海洋看起来非常真实。在过去,艺术家们必须一行行编写复杂的数学配方,来告诉计算机如何让水面泛起涟漪、反射光线以及呈现出湿润感。这就像是在为每一滴雨编写一本手册。但最近,出现了一个新的想法:与其编写规则,为什么不让计算机去“学习”这些规则呢?这就是“神经渲染”(neural rendering)的世界。把它想象成在你的显卡内部训练一个微小的、超高速的大脑。它不再遵循严格的配方,而是通过观察水的行为示例,自行悟出其中的规律。研究人员提出的核心问题是:我们能否用这些微小的、习得的“大脑”,取代所有那些旧有的、手工编写的数学配方,从而在不降低游戏运行速度的前提下,让水面的效果变得惊艳绝伦?
这篇论文通过使用来自 NVIDIA 的一个特定新工具——“RTX 神经着色器”(RTX Neural Shaders)——深入探讨了这个问题。研究人员想要测试他们是否可以替换掉水体着色器的两个主要部分:一部分是让水运动的部分(制造波浪),另一部分是让它闪闪发光的部分(反射光线)。他们建立了一个训练系统,让一个神经网络尝试模仿一个完美的、数学化的水体着色器的行为。
实验结果呈现出两个截然不同的故事。在“闪亮”这一侧,实验取得了巨大的成功。神经网络几乎瞬间就学会了如何模拟光线在水、油和粘稠流体上的反射。它能够创造出真实的反射效果,从深蓝色的海洋到机油的油亮光泽,在 RTX 4060 显卡上都能以每秒 100 帧的速度流畅运行。计算机仅需约 60 到 70 微秒就能计算出每个像素的颜色,这证明了对于让物体“看起来”正确这件事,这些微小的“大脑”是一个可行的实时方案。
然而,当他们尝试利用神经网络来“移动”水体时,故事发生了急转弯。他们要求这个“大脑”学习如何上下推动网格顶点,以产生格斯特纳波(Gerstner waves,即你在电影中看到的那些翻滚的海浪)。这一部分失败得非常惨烈。当他们试图让网络变得稍微大一些,以处理移动波浪的复杂数学运算时,整个应用程序就会冻结或崩溃。即使没有崩溃,水面也会变成扭曲、震颤的混乱状态,或者直接消失。研究人员发现,目前的框架对于这些移动网络的规模有着严格且隐藏的限制,并且难以处理移动水体的复杂几何结构。他们还尝试在另一台电脑上训练网络并将这个“大脑”迁移过去,但文件格式并不兼容,就像一扇他们无法撬开的锁着的门。
那么,结论是什么?论文表明,虽然神经着色器已经准备好接管让水体看起来美丽且逼真的工作,但它们尚未准备好接管如何进行复杂运动的工作。这项技术在视觉效果方面很有前景,但在“肌肉”层面的方程中,它仍处于“辅助轮”阶段,受限于目前的硬件和软件限制。作者总结道,我们正处于正确的道路上,但在它能够处理完整的实时流体模拟之舞之前,该框架还需要更多的工具和更好的文档支持。
技术摘要:评估使用 NVIDIA RTX Neural Shaders 进行实时神经流体渲染的可行性
问题陈述
传统的实时流体渲染依赖于手工构建的数学着色器,以平衡视觉真实感与计算效率。这些方法(例如用于顶点位移的 Gerstner 波和用于像素着色的解析型 BSDF)虽然经过高度优化,但具有僵化性,需要针对不同材料和光照条件进行大量的手动调优。随着 2025 年初 NVIDIA RTX Neural Shaders (RTXNS) 框架的推出——该框架允许小型神经网络通过 Tensor Core 直接在 GPU 管线中执行——一个关键问题随之而来:神经着色器能否有效地替代流体渲染中的几何变形(顶点)和光学着色(像素)逻辑?本研究旨在调查使用 RTXNS 近似这些复杂函数的可行性,旨在理解该框架的能力及其当前的架构限制,而非仅仅追求超越现有的解析方法。
方法论
作者在 RTXNS 框架内实现了一个双管线训练系统,用学习到的多层感知器 (MLP) 取代传统的着色器逻辑。该系统在 NVIDIA RTX 4060 GPU 上以 1080p 分辨率进行了测试。
双管线架构:
- 像素着色器管线: 使用神经网络取代了解析型流体 BSDF(双向散射分布函数)。其基准真相(Ground Truth)采用了两阶段架构:首先是基于微表面(microfacet)的 BRDF 核心(计算 Fresnel、GGX 分布和几何项),随后是流体特有的光学后处理(透射率、深度吸收)。神经 MLP 近似于核心 BRDF 阶段,接收六个输入(几何点积、粗糙度、折射率 IOR)并输出四个通道(镜面反射项、视点相关混合项、散射、Fresnel)。
- 顶点着色器管线: 尝试使用神经网络取代程序化 Gerstner 波位移。其基准真相是一个通用的、依赖于材料的波浪模型,该模型结合了粘度 (μ) 和弹性 (η) 来调节波形、时间包络和频率。神经 MLP 接收八个输入(位置、时间及材料参数)来预测 3D 位移向量。
训练与推理:
- 训练是在 GPU 上通过宿主侧的
rtxns::HostNetwork 类进行的实时训练,通过计算着色器分发前向/后向传播和优化器步骤 (Adam)。
- 像素管线利用频率编码来扩展输入维度,而顶点管线则在 PyTorch 中探索了多种架构 (V1–V5) 以进行离线训练尝试,随后尝试将其转换为专有的
.ns.bin 格式。
主要贡献
- 实现了双神经管线: 本研究成功设计并实现了在统一的 RTXNS 管线内对顶点位移和像素着色的神经近似。
- 经验可行性评估: 研究对 RTXNS 的成功与失败之处进行了具体的评估。研究表明,神经近似平滑且有界的反射函数(像素阶段)是可行的,而几何位移(顶点阶段)则面临重大障碍。
- 识别框架限制: 论文记录了特定的架构障碍,包括:
- Warp 对齐约束: 框架表现出二进制失效阈值(例如,32 个神经元可以工作,而 64 个神经元会导致立即挂起),这可能是由于 Tensor Core 执行中的协作向量 Warp 对齐问题引起的。
- 序列化与工具链缺失: 由于不透明的
.ns.bin 格式以及缺乏用于二进制验证的诊断工具,无法导入外部训练的 PyTorch 权重。
- 依赖问题: 由于与内部 NVIDIA 包存在无法解决的依赖冲突,SlangPy 训练路径目前在外部环境中无法访问。
结果
- 像素着色器成功: 神经像素着色器在数秒内实现了成功收敛。它在多种材料下实现了视觉准确的流体外观(水、油、粘性流体),帧率为 100 FPS。每像素推理时间为 60–70 µs,略高于解析基准(20–30 µs),但足以满足交互式应用的需求。该网络成功学习了 BSDF 复杂的非线性关系。
- 顶点着色器失败: 顶点管线遭遇了系统性失败。
- 不稳定性: 一个 32 神经元的网络产生了扭曲、震动的网格,最终导致网格塌陷或消失。
- 容量限制: 将网络增加到 64 个神经元会导致立即且可复现的应用挂起,且没有任何错误提示,这表明当前 RTXNS 调度器或内存管理中存在硬性限制。
- 部署失败: 由于序列化不兼容和静默运行时崩溃,尝试在 PyTorch 中进行离线训练并转换为
.ns.bin 的尝试均告失败,这阻碍了更稳健架构的部署。
意义与主张
本文谦逊地声称,通过 RTXNS 建立了神经 BSDF 近似作为实时应用可行技术的地位,证明了紧凑的 MLP 可以有效地学习复杂的光学行为。然而,文章明确指出,神经顶点着色器的部署目前受到架构障碍的限制。
这项工作的意义在于它作为一个探索性应用领域的“可行性基准”。它强调了虽然硬件(Tensor Cores)和框架(RTXNS)为学习型渲染提供了一条路径,但目前的软件栈缺乏必要的文档、验证工具以及支持复杂几何学习的灵活性。作者总结道,传统着色器编程与学习型表示之间的界限正在模糊,但要实现神经流体渲染的全部潜力,需要进一步完善框架的内部约束和工具链。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。