来源:Reddit
编辑:David
1929年,英国著名量子物理学家保罗·狄拉克曾说过,“大部分物理学和整个化学的数学理论所需的基本物理定律是完全已知的,困难只是这些定律的确切应用导致方程太复杂而无法解决”。狄拉克认为,所有物理现象都可以模拟到量子,从蛋白质折叠到材料失效和气候变化都是如此。唯一的问题是控制方程太复杂,无法在现实的时间尺度上得到解决。
这是否意味着我们永远无法实现实时的物理模拟?随着研究、软件和硬件技术的进步,实时模拟在经典极限下成为可能,这在视频游戏的物理模拟中最为明显。
对碰撞、变形、断裂和流体流动等物理现象进行需要大量的计算,但目前已经开发出可以在游戏中实时模拟此类现象的模型。当然,为了实现这一目标,需要对不同算法进行了大量简化和优化。其中最快的方法是刚体物理学。
为此假设,大多数游戏中的物理模型所基于的对象可以碰撞和反弹而不变形。物体由围绕物体的凸碰撞框表示,当两个物体发生碰撞时,系统实时检测碰撞并施加适当的力来加以模拟。此类表示中不发生变形或断裂。视频游戏“Teardown”可能是刚体物理学的巅峰之作。
不过,刚体物理虽然有利于模拟不可变形的碰撞,但不适用于头发和衣服等可变形的材料。在这些场景中,需要应用柔体动力学。以下是4种按复杂性顺序模拟可变形对象的方法:
顾名思义,这类对象由通过弹簧相互连接的质点系表示。可以将其视为 3D 设置中的一维胡克定律网络。该模型的主要缺点是,在设置质量弹簧网络时需要大量手动工作,且材料属性和模型参数之间没有严格的关系。尽管如此,该模型在“BeamNG.Drive”中得到了很好的实现,这是一种基于弹簧质量模型来模拟车辆变形的实时车辆模拟器。
模拟运动学的方法通常基于力的模型,在基于位置的动力学中,位置是通过求解涉及一组包含约束方程的准静态问题来直接计算的。PBD 速度更快,非常适合游戏、动画电影和视觉效果中的应用。游戏中头发和衣服的运动一般都是通过这个模型来模拟的。PBD 不仅限于可变形固体,还可以用于模拟刚体系统和流体。
Nvidia 的 Flex 引擎基于 PBD 方法。对象表示为通过物理约束连接的粒子集合
这种方法是基于弹性场理论对应力-应变方程进行数值求解。它本质上是在 3D 中解决 3D 胡克定律。将材料划分为有限元,通常为四面体,通过求解线性矩阵方程,在每个时间步计算顶点上的应力和应变。FEM 是一种基于网格的柔体动力学仿真方法。它非常准确,模型参数与杨氏模量和泊松比等材料属性直接相关。工程上实际应用的 FEM 模拟通常不是实时的,不过最近,AMD 发布了名为 FEMFX 的游戏多线程 FEM 库,可实时模拟材料变形。
MPM 是一种高精度的无网格方法,比基于网格的方法更适合模拟大规模变形、裂缝、多材料复合系统和粘性流体,提高了模拟效率和精度。MPM 是目前最先进的无网格欧拉/拉格朗日混合方法, MPM 模拟不是实时的,对于涉及大100万个点的系统,最先进的模拟每帧大约需要半分钟。
一片面包的撕裂被模拟为 1100 万个 MPM 粒子
在模拟计算中,计算速度和精度之间总是存在权衡。由于物理求解器在过去几十年中得到了极大的优化,几乎没有空间进行逐步改进。
这就需要机器学习发挥作用了。来自牛津大学、育碧、DeepMind 和 ETH Zurich的最新研究表明,深度神经网络可以学习物理交互并对其进行多次模拟速度快几个数量级。
通过生成数以百万计的模拟数据,用神经网络进行训练,在用训练过的模型来模拟物理求解器,就可以实现这样的提升。尽管离线过程在生成数据和训练模型方面会花费大量时间,但经过训练的神经网络在模拟物理模型的速度要快得多。
牛津大学的研究人员开发了一种称为深度仿真器网络搜索 (DENSE) 的方法,将模拟速度提升了最高20 亿倍,他们并已经在 10 个科学研究案例中证明了这一点,包括天体物理学、气候、聚变和高能物理学等领域。
在游戏领域,Ubisoft La Forge 的团队使用了一个简单的前馈网络,该网络在三个后续时间帧内训练 3D 网格对象的顶点位置,并学习预测下一帧。该模型本质上是将预测与模拟数据集中的已知位置进行比较,并通过反向传播来调整模型参数,以最大限度地减少预测中的误差。
该团队使用 Maya 的 nCloth 物理解算器生成模拟数据,这是一种针对布料优化的高级弹簧质量模型。他们还实施了主成分分析 (PCA) 以仅在最重要的基础上进行训练。结果神经网络模拟物理的速度比物理求解器快 5000 倍。
布料和柔性材料的快速数据驱动物理模拟
视频:
https://www.youtube.com/watch?v=yjEvV86byxg
DeepMind团队最近的另一项工作在图网络方面取得了惊人的成果。与传统神经网络不同,图神经网络具有类似图的结构。团队使用图网络模拟了各种材料,包括沙子、水、粘稠物和刚性固体。
这个模型不是预测粒子的位置,而是预测加速度,并且使用欧拉积分计算速度和位置。模拟数据是使用一系列物理求解器生成的,包括 PBD、SPH(平滑粒子流体力学)和 MPM。
由于针对速度进行优化,因此并没有物理求解器快得多,但它展示了当机器学习遇到物理时可以实现的目标。
复杂物理模拟的真实情况和深度学习预测的比较
视频:
https://www.youtube.com/watch?v=h7h9zF8OO7E
目前,这个领域仍处于起步阶段,但未来肯定会发现提升物理模拟性能的基于机器学习的新技术。从量子力学和分子动力学到微观结构和经典物理学,有很多模型可以模拟多种规模和复杂度的物理现象,机器学习和物理学相结合,创造价值的潜在机会无疑是巨大的。
参考文献:
[1] Paul Dirac, Quantum Mechanics of many-electron systems, Proc. R. Soc. Lond. A 123, 714 (1929)
[2] J. Bender et al., A Survey on Position Based Dynamics, EUROGRAPHICS (2017)
[3] Chenfanfu Jiang et al., The Material Point Method for Simulating Continuum Materials, SIGGRAPH courses (2016)
[4] J. Wolper et al., CD-MPM: Continuum Damage Material Point Methods for Dynamic Fracture Animation, ACM Trans. Graph. 38, 119 (2019)
[5] M. Kasim et al., Building high accuracy emulators for scientific simulations with deep neural architecture search, arXiv (2020)
[6] D. Holden et al., Subspace Neural Physics: Fast Data-Driven Interactive Simulation, SCA Proc. ACM SIGGRAPH (2019)
[7] A. Sanchez-Gonzalez et al., Learning to Simulate Complex Physics with Graph Networks, Proc. 37th Int. Conf. ML, PMLR, 119 (2020)
[8] T. Pfaff et al., Learning Mesh-based Simulations with Graph Networks, arXiv (2021)
[9] B. Kim et al., Deep Fluids: A Generative Network for Parameterized Fluid Simulations, Computer Graphics Forum, 38, 59 (2019)
reddit链接:
https://www.reddit.com/r/MachineLearning/comments/phvgzb/r_how_machine_learning_will_revolutionise_physics/
联系客服