NVIDIA将长期作为物理运算基础技术使用的PhysX和Flow源代码完全开源了。连对应的GPU内核也一并以BSD-3许可证公开,任何人都可以使用和修改。
NVIDIA PhysX
PhysX是用于在游戏和模拟中实现逼真物理行为的物理引擎。它旨在再现接近现实世界的运动,包括刚体、软体、关节、碰撞判定、重力、摩擦等。
在《Mirror’s Edge》或《Batman: Arkham Asylum》等强调物理运算的作品中,它曾是不可或缺的存在,过去还曾出现搭载 PhysX 专用加速器(PhysX PPU)的产品。
不过,近年随着游戏引擎侧的物理系统进化,PhysX 的存在感也给人一种略显低调的印象。
NVIDIA Flow
Flow是用于在GPU上实时模拟烟雾、火焰、爆炸、液体等流体运动的库。其设计尤其针对VFX和实时渲染进行了优化,并基于CUDA运行。
它过去作为NVIDIA GameWorks的一部分提供,近年来也逐渐被整合进Omniverse等平台。其特点不是基于粒子,而是采用基于网格的体积模拟。
关于开源化
自2018年12月发布 PhysX SDK 4.0 以来,NVIDIA PhysX 一直可以作为 BSD-3 许可证下的开源项目使用。
而今天,这一情况发生了变化。
PhysX SDK 的最新更新包含了所有在 BSD-3 下完全许可的 GPU 源代码!
拥有超过500个CUDA内核、提供刚体力学、流体模拟、可变形对象等功能的GPU PhysX,是CUDA和GPU编程中最先进的实时模拟应用场景之一。我们希望这次发布能成为整个社区学习、实验和开发的宝贵资源。
此外,我们还将实时、稀疏网格型流体模拟库Flow SDK的完整GPU计算着色器实现开源了。
我们迫不及待想看到大家用 Flow SDK 做出什么。欢迎探索、实验,并随时在这个 GitHub 上提交问题或反馈!
这次,PhysX和Flow的包含GPU内核在内的全部源代码都已公开,并且可以在BSD-3许可证下被任何人使用、再分发和修改。仓库已在NVIDIA官方GitHub账号上公开,包含CUDA内核、示例代码和文档。
由于许可证十分宽松,也适合学术用途和自行改造,对Mod开发者和引擎开发者来说也是受益良多的形式。
其背景是什么?
这次公开背后,可能存在一些技术和时代层面的转折点。
首先值得注意的是,从GeForce RTX 50系列开始,32bit CUDA应用程序的支持将被终止。
对比旧GPU和 PhysX 运行情况的视频
因此,在一些旧的基于 PhysX 的游戏中,GPU加速可能无法生效,并被回退到软件处理。NVIDIA自己也明确表示“没有恢复32bit支持的计划”,而随着这次开源化,外界也期待社区能通过包装器或转换层来确保兼容性。
另外,也有“不再需要的代码”这样的说法,这也可以理解为长期维护的遗留代码终于完成了使命。换句话说,NVIDIA今后似乎没有积极推进这项技术继续进化的意思,这或许也是其另一层含义。
也就是说,这正是一个“32bit CUDA 的新硬件支持已经结束,所以现在公开也无妨”的时机。
参考:NVIDIAが物理エンジン「PhysX」のサポートを終了 – GIGAZINE
物理和流体运算至今仍是实时CG中的重要部分,但近几年NVIDIA的方向给人的印象是正大幅转向包括硬件在内的AI基础解决方案。
未来,物理现象等也交给AI来处理,以获得“看起来很真实”的趋势,或许会越来越多。
PhysX和Flow是否会被重新评价,取决于这次开源化之后,社区能在多大程度上重新加以利用吧。接下来会怎样呢。
比起这些,我更想要RTX 50系列GPU……
链接
GitHub
PhysX SDK – Latest Features & Libraries | NVIDIA Developer