• 我的订阅
  • 游戏

给我一个物理引擎,我也能“预测”世界杯?

类别:游戏 发布时间:2022-12-08 09:13:00 来源:新周刊

本文经授权转载自

中科院物理所

(ID:cas-iop)

作者 | Callo

世界杯正如火如荼地进行,而大力神杯终究会花落谁家,成为了每届世界杯都被人们津津乐道的话题。许多专业机构也不甘落后,纷纷用自己的专业模型和数据进行分析,给出了每支球队夺冠的赔率。但你有没有想过,不要998, 只要一个物理引擎,你也可以在家“预测”世界杯?????

给我一个物理引擎,我也能“预测”世界杯?

大力神杯。图源:FIFA World Cup Trophy - Wallpapers Den

此预测非彼预测

看到这个小标题,想必同学们应该也猜到了,小编接下来为大家介绍的既不是像章鱼保罗这样的“神兽”式预测,也不是专业预测机构那样神秘的数据分析。接下来,小编将带领同学们走入的是元宇宙纪元下交互版的世界杯预测世界????(其实就是带大家一起玩实况啦~)

给我一个物理引擎,我也能“预测”世界杯?

章鱼保罗。图源:wbur.

不知道还有多少同学知道这样一句话呢:“ 欢迎来到实况足球8,国际版的游戏世界”????实况8,相信是整整一代人的足球游戏入坑作,想当年小编也曾在其中打造自己的“梦之队”,去驰骋世界赛场,斩获一座座奖杯。

给我一个物理引擎,我也能“预测”世界杯?

欢迎来到实况足球8国际版的游戏世界。图源:实况足球8国际中文解说版

小编再来考一考,有多少同学知道拉普拉斯妖呢?这是一只准确知道宇宙中所有原子的位置和动量,并能熟练使用牛顿定律的小妖,其可以通过力学定律精确地推演历史,并预测未来。

给我一个物理引擎,我也能“预测”世界杯?

DémondeLaplace. 图源:etsy.

读到这里,相信同学们已经能够猜地八九不离十了:假如有这样一个足球游戏,其能够真实地还原每场比赛中的所有物理组成,包括场地、足球以及双方球员的身体状况、心态决策等等,那么我们就成为了这场比赛的“拉普拉斯妖”,并可以通过模拟这场比赛来对真实的比赛结果给出准确的预测。

脑洞开的再大一点,我们甚至可以为比赛双方都设置一个可以“进化”的AI,并让他们之间不断对战,通过电脑自己的“左右互搏”而自我进化,从而筛选出一套最强的足球战术,从而反过来在现实中帮助球队所向披靡。

给我一个物理引擎,我也能“预测”世界杯?

左右互搏。图源:搜狐网

且不论上述黑魔法是否真的能实现,但不可否认的是,现在的足球游戏真的是做的很逼真,不论是各种诡异的足球弹道到人物的表情服饰,都在游戏光影的渲染下与现实无异。然而,不知道同学们有没有想过, 电脑中的游戏为什么能如此栩栩如生地再现足球比赛,并且让玩家可以感受到球员真实的技术动作以及反应呢?下面,就让小编带领大家走进作为足球游戏支撑的,背后的 物理引擎世界吧~????

实况、FIFA,然后物理引擎

当年小编玩的实况八,大致是这样一种观感:

给我一个物理引擎,我也能“预测”世界杯?

实况八中的齐祖。图源:malavida.

可见,其人物造型仍有点“生疏”,而背后的草地也更像是一块简单的劣质贴图????。再来看看近几年(以FIFA22为例)的游戏场景:

给我一个物理引擎,我也能“预测”世界杯?

FIFA 22。图源:EA SPORTS

是不是既真实又炫酷呢?现在游戏之所以能够带来如此真实的体验,离不开其背后的游戏引擎的支撑。

FIFA22中使用的游戏引擎是大名鼎鼎的寒霜引擎:

给我一个物理引擎,我也能“预测”世界杯?

寒霜引擎。图源 :USgamer

而寒霜引擎中,作为其最基本物理部分引擎的,是Havok物理引擎[1]:

给我一个物理引擎,我也能“预测”世界杯?

Havok引擎。图源:Attack of the Fanboy

其支持许多对于现实生活中物理现象的模拟,并通过不断的技术迭代,使得人物的动作更加真实。

给我一个物理引擎,我也能“预测”世界杯?

Havok引擎演示。图源:【游戏研究室】哔哩哔哩

而其更是被应用到了很多的3A大作中,例如:

给我一个物理引擎,我也能“预测”世界杯?

一些应用了Havok引擎的游戏,你能认出几个?图源 :Havok

而游戏引擎,顾名思义,犹如一款游戏的发动机,是一个游戏的核心部件。游戏中例如足球的滚动、球员们的对抗与碰撞,都是基于其主管物理的部分:物理引擎而实现的。而在物理引擎的底层,其也蕴含着十足的硬核物理原理。同学们不妨跟着小编一起看下去,去踢一场“最硬核”的世界杯吧!????

实况、FIFA,然后物理引擎

一个成熟的物理引擎,其核心主要包括以下三大部分[2]:

1.刚体动力学部分

2.碰撞检测部分

3.约束部分

通过以上三个流程,物理引擎可以用如下图所示的一个循环来迭代计算每个物体的位置和速度信息,当迭代速度足够快且迭代结果足够精确时,显示到屏幕上的物体运动就可以称得上“栩栩如生”了。

给我一个物理引擎,我也能“预测”世界杯?

物理引擎中的核心循环,通过一系列符合物理法则的迭代计算更新物体的信息,从而使得游戏世界栩栩如生。

下面,让小编逐一为大家进行介绍。

给我一个物理引擎,我也能“预测”世界杯?

刚体动力学

给我一个物理引擎,我也能“预测”世界杯?

首先,要让计算机知道在游戏场景中,哪个地方存在一个什么样的物体,它是如何运动的,我们需要找到一种合适的方式来对于物体的 形状、位置、速度等进行描述。在建模过程中,一个复杂的物体经常可以视为许许多多相对简单的刚体的组合,作为building blocks,我们首先考察 刚体动力学。

给我一个物理引擎,我也能“预测”世界杯?

一个典型刚体。图源[3]

刚体(rigid body),被定义为形变为0的物体,其上任意两点之间的距离,无论刚体如何运动,都是不变的[3]。在中学物理中,相信同学们都学习过质点的运动学,其由牛顿三定律描述[4]:

从质点运动学给我们的启发,在 研究刚体运动学时,我们也尝试借鉴描述质点时的成功经验,并在其上进行进一步扩充,以便正确描述一个有形状有体积的刚体。鉴于刚体有着以一个整体运动的特征,我们可以首先定义其 质心:

给我一个物理引擎,我也能“预测”世界杯?

其中,求和对应于刚体质量离散分布,而积分对应连续质量分布的刚体。

顾名思义,质心就是刚体质量的中心,凡是与刚体平动有关的动力学性质,都可以用质心来代替。而质心也有很多有趣的性质,例如下图,如果一只玩具鸟的质心正好被设计在嘴部,则人可以用一只手指将其托起而不至翻倒。

给我一个物理引擎,我也能“预测”世界杯?

利用质心特性制作的小玩具。图源 [5]

但与此同时,由于刚体可以视为一系列质点的集合,其在空间存在一定的分布,所以如果仅仅使用质心来描述其动力学特性是不够的,我们还要研究刚体的转动。

为了研究刚体的转动,首先明确以下约定和记号[6]:如下图,假设XYZ是我们进行观察的实验室坐标系(固定坐标系),而x1x2x3为固定在刚体上并随之一起平动、转动的坐标系(称之为动坐标系),图中一些约定如下:

给我一个物理引擎,我也能“预测”世界杯?

约定与记号

则刚体的任何一个无穷小位移:

给我一个物理引擎,我也能“预测”世界杯?

可以表示为一个随着其质心的无穷小平动

给我一个物理引擎,我也能“预测”世界杯?

以及一个绕着动坐标系原点的无穷小转动

之和:

刚体无穷小位移

这样,刚体上任意一点的位置就可以被我们方便地描述了。下面,对上式逐项进行求导,来考察刚体上各点的速度:

其分别为刚体上某一点对于固定坐标系的速度,刚体质心的平动速度以及刚体的转动角速度。由此可见,刚体上任意一点的速度可以用刚体平动速度和转动角速度来分解:

下面研究刚体的受力与运动方程:首先,处理平动部分,并假设刚体的总质量为

给我一个物理引擎,我也能“预测”世界杯?

则 有

进一步,则有刚体平动的运动方程:

这与质点的运动方程是一致的,而这个结果也再次验证了上文所说的,通过使用质心来描述刚体平动的合理性。

为了描述转动的运动方程,首先定义刚体的转动惯量张量:

上式对应于离散情况,对连续质量分布情况,只需要将各个分量用如下积分代替:

进而,可以定义刚体的内禀角动量

不妨选择惯性参考系使得刚体质心速度在该参考系中为0(这一点总可以做到),并定义刚体的总力矩

则有刚体转动部分的运动方程:

碰撞检测

现在我们已经知道如何描述一个刚体的位置以及运动了,但游戏场景中通常存在许许多多的物体,根据平时物理世界的直觉,如果两个物体相向而行,则其必定会在某个时刻相撞而弹开。在物理引擎中,专门有碰撞检测的算法来处理这一问题。

一般, 对于物体的碰撞检测分为两个阶段进行,第一部分是较为粗糙的 Broad-Phase部分,而第二部分是较为细致的 Narrow-Phase部分。首先,看Broad-Phase检测[7]:

在 Broad-Phase检测中,就是先粗略地估计两个物体有没有可能相撞,来为之后的Narrow-Phase检测减少工作量。首先,定义物体的 Bounding Volume[8]: 能完全包住该物体的最小长方体的体积。

最常用的Bounding Volume方法有 AABB(axis-aligned bounding boxes), OBB(oriented bounding boxes), 和 Bounding Circle/Sphere,其示意分别如下图所示:

给我一个物理引擎,我也能“预测”世界杯?

三种常用的Bounding。

其中最常用,也是最节省计算资源的是第一种,为AABB,在这一种Bounding方式下,判断两个物体是否可能发生碰撞,只需要检测包围住这两个物体的长方体有没有可能发生碰撞,从而将不规则物体碰撞的预检测化为了规则的长方体之间重合的检测。

在检测是否有碰撞发生时,通常采用Sweep and Prune方法[9],其大意如下:在AABB方法下,在每个坐标轴上将每个物体所占有的长度的两端标记为(b,e),如下图,以x轴为例:

给我一个物理引擎,我也能“预测”世界杯?

Sweep and Prune方法。

分别在坐标轴上标记了三个物体在AABB方法下的边界,并产生了三个(b,e)对:

如此,对于任意两个物体i和j,如果判定下列不等式之一成立:

给我一个物理引擎,我也能“预测”世界杯?

即判定这两个物体有可能(即将或者已经在)发生碰撞。

例如上面横着的葡萄和足球,就满足

这个不等式,而从图中也可以看出,在x轴上,这两个物体的投影也确实是有重合的。

在进行完Broad-Phase检测后,我们就挑选出了所有可能存在碰撞情况的物体对,并只需要对于这些物体对进行更为细致的Narrow-Phase检测,其简介如下:

首先,考察一个物体的凹凸性,由于凸多面体有着更为方便的碰撞检测特点,所以我们期望更多地使用凸多面体去近似实际的物理物体。

凸多面体可以被定义为,一个几何体内任意两点所连线段都落在该几何体内的多面体。而凹多面体则反之,存在一条几何体两点连线,其不能完全包含在该几何体内。

给我一个物理引擎,我也能“预测”世界杯?

凸多面体与凹多面体。

可见,凸多面体存在着相较于凹多面体规则地多的形状,这也是为什么凸多面体在实际计算中更好判断是否发生碰撞的部分原因。但幸运的是,通过Quickhull算法[10],我们可以方便地生成任意一个凹多面体的凸多面体逼近:

给我一个物理引擎,我也能“预测”世界杯?

Quickhull算法示意。图源 [10]

现在我们面对的问题就简化成了如何细致判断两个凸多面体是否发生碰撞。一种直观的想法是逐点判断两个物体的轮廓,是否有存在一个多边形的某个点被另一个多边形的所有边界点所包围。但在实际物理引擎中,通常使用更为优化的计算方法,以平衡计算开支。其中一种较为方便的方法称为Separating Axis Theorem(SAT),其基本原理是[11]:对于两个凸多面体,其不相交的条件是存在一条直线,使得两者在该直线上的投影不相交。

给我一个物理引擎,我也能“预测”世界杯?

SAT算法示意。

例如,上图六边形与梯形,存在一条投影轴(Axis)使得两者在其上的投影不相交,则判定这两个物体没有发生碰撞,这也与直接的直观认知是一致的。

现在我们知道了如何判定两个物体有没有碰撞,那么,假如两个物体发生了碰撞,其碰撞之后的情况又是什么样的呢?下面以质点碰撞为例,说明物理引擎对于碰撞的处理。

碰撞可以分为弹性碰撞与非弹性碰撞(包含完全非弹性碰撞和部分弹性碰撞),首先,看弹性碰撞,对于两个理想球体发生弹性碰撞,其过程中动量和能量都守恒,设其质量分别为m1和m2,初始速度分别为u1和u2,碰撞后速度为v1和v2,则有[12]:

给我一个物理引擎,我也能“预测”世界杯?

对于非弹性碰撞,定义恢复系数

给我一个物理引擎,我也能“预测”世界杯?

则有碰撞后速度:

给我一个物理引擎,我也能“预测”世界杯?

可以看出,恢复系数为0对应完全非弹性碰撞,而其为1对应为完全弹性碰撞。恢复系数通常与两个碰撞物体的材质以及物理特性有关,是一个经验的参数,需要对两两物体间分别设定。

看到这里,两个物体在物理引擎中是如何判定是否发生碰撞的,以及如果其发生了碰撞后如何继续演化就被我们以至少一种可行的方式弄清楚了。但仅仅知道上述内容还不足以完成一个完整的物理引擎,这是因为在实际的物理世界中,处处都存在着约束条件[15],例如一个小物块从斜坡上滑下,其在运动过程中必须保持自身处于斜面之上,而不能突然穿入斜面或者飞到天上去。

给我一个物理引擎,我也能“预测”世界杯?

斜面上的小物块、受力分析和约束。图源 [15]

下面就让我们一起来看看,物理引擎中所用到的约束吧。

约束

从上文的讨论可知,约束通常意味着真实的物理情形对于物体位置和速度的限制,使之不会出现反常、反直觉的现象( 例如游戏中偶尔出现的穿模bug,就是约束没算好 ????)

那么,在物理引擎中,约束是如何进行计算的呢?下面用一个简单的例子进行说明:

例如,对于一个在碗里的小球,我们把小球从碗的边缘释放,使之在碗中自由运动。

给我一个物理引擎,我也能“预测”世界杯?

快到碗里来。????

把碗的内壁简化为一个半球面,并不妨设其半径为R,并把小球简化成质点的话,则不难得到如下的约束:

给我一个物理引擎,我也能“预测”世界杯?

其含义是小球到上图坐标系原点O的距离始终是碗的半径,也就对应着小球被约束在碗壁上这一物理实在。

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2022-12-13 22:10:05

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

更多关于世界杯,物理,引擎,世界的资讯:
抖音入场世界杯,火山引擎打满全场
世界杯已经进入决赛时刻。打开抖音,世界杯专区的赛程上赫然显示,阿根廷与法国的冠军之战,将于12月18日晚11点直播。决赛在即,“科技”标签十足的卡塔尔世界杯也到了技术应用验证的高
2022-12-19 02:02
沙特推出国家元宇宙,折射中东土豪对未来的野望
...领域,卡塔尔则与中国有所合作。卡塔尔旅游局在 2022 年世界杯之后积极布局 \" 赛后经济 \",通过创新的营销策略,旨在将体育盛事的热度转化为旅游产业的持续增长动力。借助
2024-03-02 09:15:00
火山引擎获MSU 4K超高清视频编码器比赛最佳FPGA编码器
...户体验。依托火山引擎在4K编码方面的技术能力,卡塔尔世界杯期间,抖音实现了业界首次4K HDR 世界杯赛事直播。4K HDR 直播的内容信息量相较于1080P有极大提升
2023-07-21 18:00:00
黑科技应用爆发式增长
...场景进行可视化、实时动态的监测与管理。2022年卡塔尔世界杯通过数字孪生方案,为每个体育场都构建了一个“3D数字孪生”,将八大赛事场馆连接为一体,并从约4万个物联网设备获取实
2023-05-20 07:05:00
抖音春晚直播观看人数破1.3亿, 火山引擎技术助力“新年俗”新体验
...台,此前已连续支持过2021、2022两届春晚红包,还作为抖音世界杯直播的主力服务商,平稳支撑了抖音世界杯64场比赛直播,为累计106亿人带来超高清、低延时的畅爽手机观赛体验
2023-01-23 02:00:00
深度解读:易知微《数字孪生世界白皮书(2023)》全方位剖析!
...用实现对虚拟世界的参与和互动,也可以通过虚拟世界对物理世界进行协同感知和控制,实现“虚实人联动”。l 持续推进数字孪生世界“多跨”数智场景建设数字孪生相较于数据可视化有着更为
2023-05-10 03:00:00
全红婵的水花让物理学不存在了,207C直接拿下满分!网友:我下饺子都比这水花大
...花让物理学不存在了”话题登上热搜,视频显示全红婵在世界杯西安站10米台预赛第四跳,207C直接拿下满分,网友调侃:我下饺子比这水花大。对于全红婵来说,这已经不是第一次了。14
2023-05-22 13:44:00
...为济南黄河体育中心一期项目重点工程,该足球场将采用世界杯FIFA最新标准,预计2024年底竣工。路网建设融入创新理念 城市发展“大动脉”逐步打通开局起步,交通先行。2022年
2023-01-14 09:56:00
世界杯落幕,懂数智营销的品牌这次彻底不慌了|数字化的秘密
...销,同样的投入可以使知名度提升10%。吸引50亿人围观的世界杯就是这个最具价值的营销赛场。据英国数据分析和咨询公司Global Data的数据显示
2022-12-28 13:02:00
更多关于游戏的资讯: