社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

机器学习如何彻底改变游戏中的物理模拟

大数据文摘 • 3 年前 • 746 次点击  
大数据文摘授权转载自AI科技评论
编译:琰琰
编辑:王晔

量子力学奠基者之一、英国理论物理学家保罗·狄拉克(Paul Dirac)在1929年说过:“大部分物理和化学所需要的数学理论的定律都是已知的,但这些定律的方程太复杂无法求得精确解”。他认为,从蛋白质折叠、材料失效到气候变化,所有的物理现象都可以模拟为量子计算。但由于控制方程太复杂,科学家无法在现实的时间尺度上求解。

那么,这是否意味着我们永远无法实现实时物理模拟?

以前物理学家通过模型开发、求近似解等方法可以在较短时间内达到预期的结果。然而,随着研究、软件和硬件技术的进步,实时仿真只能在极限条件下才能够实现,这一点在视频游戏物理学中最为明显。

模拟物理现象(如碰撞、变形、破裂和流体流动)属于密集型计算。在游戏中实时模拟此类现象需要对不同的算法进行了大量的简化和优化。目前最先进模拟方法是刚体物理学(rigid body physics),它可以确保两个物体在碰撞和反弹的过程中不会发生变形或断裂,这是模拟虚拟游戏的基础。当两个物体碰撞时,算法能够进行实时检测并采用适当的力模拟碰撞。

如下,电子游戏中的“摧毁”可能是刚体物理学应用的最佳示例。


需要说明的是,刚体物理学可用于模拟不变形物体的碰撞,但虚拟游戏中往往存在着大量可变形物体,比如头发、衣服。而要想解决这个问题就需要用到柔体动力学(soft-body dynamics)。

以下是模拟可变形物体的四种方法(按复杂度排序)

弹簧质量模型(Spring-Mass Model)


由命名可知,弹簧相互连接的点的质量系统代表模型检测的目标,我们可将其视为三维胡克定律网络。胡克定律是力学弹性理论中的一条基本定律,它表明受力固体材料中的应力与应变(单位变形量)之间成线性关系。

该模型的主要缺点是建立质量弹簧网络时需要大量的人力成本,并且材料特性与模型参数之间没有严密的逻辑关系。但尽管如此,该模型在“BeamNG.Drive”赛车游戏中也达到了非常不错的效果,如下图,基于弹簧-质量模型的实时车辆模拟器,可用于模拟车辆变形。


基于位置的动力学(Position-bsed Dynamics,PBD)


运动学模拟的方法通常基于力学模型,如粒子加速度遵循牛顿第二定律计算,通过积分计算获取每个时刻的速度和位置。

在基于位置的动力学,通过求解约束方程的准静态问题来计算位置。PBD方法的精确度较低,但计算速度优于基于强制的方法,因此非常适合游戏、动画电影等视觉场景。游戏中人物的头发、衣服的运动通常都是采用该模型来实现。PBD不仅局限于可变形固体,还可用于模拟刚体物体和流体。更多内容可参考这篇关于PBD方法的综述[2]。


有限元法(finite element method ,FEM)


有限元方法计算变形材料是基于弹性场理论求解应力-应变方程。

它本质上遵循3D胡克定律,首先将材料划分为四面体的有限元,通过求解线性矩阵方程,获得每个时刻步长上顶点上的应力和应变。FEM是一种基于网格的软体动力学模拟方法,它的优点是精确度高,且模型参数与材料特性(如杨氏模量和泊松比)直接相关。一般而言,FEM模拟在工程应用方面不能实时运行,但最近知名半导体公司AMD发布多线程FEM库,表明FEMFX在游戏中可实时模拟变形材料。

AMD的实时有限元解算器FEMFX模拟木材断裂

AMD的FEMFX模拟塑性变形

材料点法(Material Point Method ,MPM)


MPM是一种高精度的无网格方法,它比基于网格的方法更适合模拟变形、断裂、多材料系统和粘弹性流体,因为运行效率和分辨率更高。MPM是目前最先进的无网格混合欧拉/拉格朗日的方法,是细胞内粒子(PIC)和流体隐式粒子(FLIP)等传统方法的升级。

MPM模拟不是实时运行的,在一个含有一百万个点的系统中,MPM每帧大约需要半分钟。详细内容可见MPM综述文章[3]。

一片面包的撕裂模拟需要1100万MPM粒子

机器学习与物理模


以上四种方法与机器学习有什么关系呢?

我们注意到,基于传统方法,模型的计算速度、精度/分辨率等指标已经陷入了一种瓶颈。物理解算器经过过去几十年的优化,其发生阶跃式改进的空间已所剩无几。而在此背景下,机器学习就派上了用场。

最近,牛津大学[5]、Ubisoft La Forge实验室[6]、DeepMind公司[7,8]以及苏黎世联邦理工学院[9]的研究表明,深度神经网络可以学习物理间的相互作用并实现模拟,重点是速度可以提高多个数量级。其过程大致为:生成数以百万计的模拟数据——通过神经网络进行训练——使用经过训练的模型模拟物理解算器。

其中,生成数据和训练模型阶段会耗费大量时间,但经过训练的神经网络模型在模拟物理阶段速度会非常快。例如,牛津大学的研究人员[5]开发了一种被称为:深度仿真器网络搜索(Deep Emulator Network Search,DENSE)的方法,该方法将模拟速度提高了20亿倍,并通过了10个科学案例的验证,包括天体物理学、气候、聚变和高能物理学。

在游戏领域,Ubisoft La Forge研究团队开发的模型使用简单的前馈网络,通过在三个时间帧中对3D网格对象的顶点位置进行训练来学习预测下一帧[6]。该模型本质上是将预测与模拟数据集中的已知位置进行对比,并通过反向传播来调整模型参数,以最小化预测误差。

该团队使用Maya的nCloth物理解算器生成模拟数据,这是一种针对布料优化的高级弹簧质量模型。他们还实施了主成分分析(PCA),实验表明,仅在最重要的基础上进行训练,神经网络模拟物理的速度比物理解算器快5000倍。

数据驱动下的布料和粘性材料的物理模拟
相关视频: 
https://www.youtube.com/watch?v=yjEvV86byxg

同样,DeepMind的团队近期在图形网络方面的工作也取得了惊人的成果[7]。与传统神经网络的每一层节点相连不同,图神经网络直接具有类似于图的网络结构。利用图网络模型,该研究团队成功地模拟了各种刚性、柔性材料,如沙子、水、黏液等。

该模型预测的不是粒子的位置,而是加速度。它使用欧拉积分计算速度和位置;使用一系列物理解算器(包括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)


编译连接:

hppts://www.reddit.com/r/MachineLearning/comments/phvgzb/r_how_machine_learning_will_revolutionise_physics/



点「在看」的人都变好看了哦!
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/119979
 
746 次点击