机器之心专栏
作者:王华民(凌迪科技Style3D首席科学家兼凌迪研究院院长)
最近一段时间,数字人、元宇宙(metaverse)、云游戏等新概念变得异常炙手可热。很多圈外人士对此兴奋不已,觉得科幻电影中的场景马上就要实现了。可很少有人会指出,在通往虚拟未来的道路上其实还有一块绊脚石:实时物理模拟。本文为王华民教授结合自己的研究对实时物理模拟的一些看法。
不管是图形学圈内还是圈外,实时的重要性一直缺乏足够认识。
长期以来,圈内存在着一个误解:实时技术应该留给工业界开发。不少人觉得实时技术无非是把非实时技术优化一下。这种误解造成了图形学今天的尴尬局面。
一方面,非实时技术的应用基本仅在后期视效,而这一块已相当饱和。另一方面,大量亟需实时技术的应用,如高质量VR,数字人、虚拟试衣、虚拟手术等等,却迟迟无法落地。
随着 NVIDIA RTX 方案的推出,实时渲染的问题已经逐渐解决。相比之下,实时物理模拟变得非常重要。和渲染不同,模拟的多样性决定了实时模拟无法单纯依赖硬件解决。RTX的加速结构也只能解决一小部分模拟问题。
过去
二十年前,当我跨入图形学圈的时候,是不存在物理模拟这个概念的。当时模拟的主要应用是制作电影特效。而实时物理模拟被认为是mission impossible。
加勒比海盗:世界尽头(2007)中的漩涡效果,由 ILM 的 Frank Lossaso-Petterson 利用斯坦福大学的 PhysBAM 物理模拟引擎完成。Frank 与本文作者是斯坦福的同研究组同学。
从技术上讲,物理模拟可以划分为流体模拟和形变体模拟两大类。这样的划分不太严格,但形变体模拟,包括弹性体模拟、布料模拟、头发模拟等等,有很多的共同之处。这与流体模拟是不太一样的。这与流体模拟有很大不同。
与流体相比,形变体更加常见,应用的范围也更加广阔。读博期间(2004 年 - 2009 年),我主要研究的是流体。毕业以后,我逐渐意识到形变体的重要性,改为研究形变体。
早期的实时物理模拟技术非常简陋。很多时候需要牺牲模拟质量或者物理正确性。
回过头来看,Projective Dynamics (SIGGRAPH 2014) 是一篇非常重要的论文。它的重要性不在于提出的技术本身,而在于让很多人意识到物理模拟与非线性优化之间的相关性。从此大家的思路被打开了。
以此出发,包括我们在内的各个研究团队不断提升形变体模拟的效率,使得新一代的物理模拟引擎越来越快。
值得一提的是,我们团队主要研究 GPU 上的物理模拟。和 CPU 相比,GPU 的并行能力更加出众。我们的模拟引擎的表现也更加出众。
与此同时,我们的模拟算法也需要适配GPU硬件的并行特性。想直接把CPU上的技术搬上GPU是很难成功的。
现在
时至今日,我觉得高质量的实时形变体模拟已经部分可行了。
首先说说游戏。游戏里使用的形变体模拟大多以 position-based dynamics (PBD) 技术为主。一个典型的实例是 NVIDIA 的 NvCloth。作为一个十多年旧的技术,PBD依旧活跃在今天,其实有着深刻的原因。
一个最主要的原因在于现如今很多游戏需要考虑到跨平台,特别是移动端的的运行效率。而在一个游戏中,留给物理模拟的资源非常有限。对于模拟算法而言,内存访问通常会导致很大的计算成本。像PBD这样缺乏物理意义的算法就显得廉价且高效。
PBD 的缺点也很明显。当模拟需要的网格规模变大(比如超过 1024 个顶点),PBD 的效率就不再那么优秀了。
遗憾的是,目前似乎并没有比 PBD 更适合游戏的实时模拟方法。如何为游戏提供高质量实时模拟将会是一个很重要的难题。
倘若我们把硬件资源的限制放宽些,允许模拟引擎可以完全使用最新的 GPU,那现状还是比较乐观的。
比如,我们 2016 年的工作,已经能在 GeForce GTX TITAN X 上实时模拟近 6 万个四面体网格的超弹性效果 (hyperelasticity)。
一条被拉得扭曲的龙。
而今年(2021)我们在 SIGGRAPH 上展示的工作,更是能够在 2080Ti 上实时模拟一件有着 11 万个三角形的衬衫。
形变体模拟的开发主要有两个技术门槛:运动求解(dynamics solver)与碰撞处理(collision handling)。在人体组织、肌肉等需要四面体网格模拟的场景中,运动求解通常是计算开销的主要来源。而对于服装、头发等模拟而言,碰撞处理尤为重要。
如何安全、稳定、高效地处理自碰撞,是所有形变体模拟引擎绕不开的问题。
需要提到的一点。大多数非实时碰撞处理技术无法在GPU上有效并行。因此,我们的团队最近把大量的精力放在利用GPU进行高效碰撞处理上。我们今年的工作将会是一个重要的开端。
未来
在不久的将来,GPU 毫无疑问会越来越快。
但我们不能单纯把实时模拟寄希望于硬件的提升上。过去,实时模拟技术的发展同时依赖于硬件的提升与算法的支持。未来,我们同样需要开发更高效、更匹配硬件的模拟算法,来实现更高质量的物理模拟。
我觉得,多重网格(multigrid)
多 GPU 并行
等等,都会是值得研究的方向。
事实上,我最近在 SIGGRAPH 2021 发表的工作,已经可以以一秒一帧的效率模拟一千万个三角形的服装了。
对于流体,我其实特别喜欢基于各种波的实时水面模拟算法。我之前在佐治亚理工的同学,现在在奥地利IST的Chris Wojtan教授就做过很多这方面研究。当然,流体的表现形式太多样了。如果想实时模拟大规模的水花四溅还需要更多的工作。
以假乱真的实时模拟效果出现的那天,不会太遥远。
作者简介:王华民,俄亥俄州立大学终身教授,四届 SIGGRAPH 技术论文委员会委员,公认的世界级图形学科学家。他还是凌迪科技 Style3D 首席科学家兼凌迪研究院院长。他曾以唯一作者身份独立完成四篇 SIGGRAPH(全球规模最大、影响最大的图形学会议)论文。王华民的论文也屡屡被指定为斯坦福、UC 伯克利等名校图形学课程的参考文献。
他的学生遍布知名大厂,从硅谷的 Google、Facebook、Adobe,到国内的阿里、字节、百度等图形和模拟开发领域的重要岗位,都有他曾授业解惑的门徒。业内流传:如果你研究布料仿真,就不可能没读过王华民教授的论文。
热门跟贴