您当前的位置: 首页 >> 热门资讯

黑神话 实机演示_《黑神话荣获大奖!游戏中超逼真的物理引擎如何打造?简直难以置信……》,全程干货

作者:admin 日期:2025-01-15 点击数:0

  转自:科普中国  近期,国产游戏《黑神话·悟空》在国际上斩获多个奖项随着新版本的推出,许多玩家再次下载这款游戏,准备重新体验其中的挑战玩家们在游戏过程中不禁好奇,为什么游戏中的物理效果如此逼真?例如水中的波纹、雪地上的脚印等,这些效果是如何实现的?这些现象对物理学本身又有哪些启发?接下来,我们将一起探索游戏中的物理世界。

碰撞检测:虚拟世界的“硬碰硬”在现实的物理世界中,最常见的事件之一就是碰撞。为了使游戏中的物理表现足够真实,开发人员必须优先考虑碰撞问题。  我们先来看看经典物理中的碰撞是如何发生的。

  F 表示物体所受的净力,m 为物体的质量,a 为加速度通过对每一时刻物体所受合力和合力矩进行计算,可以得到现实生活中物体的物理状态同样的,在游戏中,物理引擎也可以利用这种方法来更新物体的速度与位置

Unity 3D 中模拟碰撞在计算机中,这通常通过数值积分方法实现,如欧拉法、龙格-库塔法或更稳定和高级的半隐式积分器等在游戏中,通常优先考虑计算效率与稳定性,以确保每帧刷新时都能快速获得近似准确的物体位置和状态。

现实世界从经典角度看是连续的,但游戏世界的模拟需要根据每个物体的状态一帧一帧地更新位置物理模拟的帧率越高,计算结果越精确例如,在两个小球对撞时,会根据它们的速度大小、方向、材质以及碰撞深度来计算碰撞结果,并更新它们的状态。

然而,现实中刚性物体不会发生重叠,真正的碰撞发生在接触瞬间或从接触到形变结束的整个过程中

游戏中重叠产生碰撞的例子由于物理引擎是一帧一帧地更新位置和计算碰撞结果,无法完全捕捉到两帧之间的细微变化,因此有时会出现反直觉的复杂碰撞情况  现代游戏引擎通过将游戏计算帧率与现实帧率分离,已经较好地解决了这个问题。

但影响碰撞的因素不仅仅是帧率为了美观,游戏中的模型通常是复杂的,包含数千个三角面如果物理引擎直接计算这些原始模型的碰撞,计算量会大幅增加,或者由于某些奇怪的角度,导致碰撞结果与现实不符因此,需要简化物体的物理外形,即所谓的碰撞体积。

  此外,材质、摩擦力、空气阻力和挤压现象等因素也会影响碰撞约束:限制中的自由除了刚体碰撞,游戏中还有许多部件的连接与转动,这涉及到约束这一物理概念例如,游戏角色抓取物体时,手与物体的接触面就形成了约束。

  在物理引擎中,约束(Constraints)用于限制物体的运动范围和相对位置它们广泛应用于角色骨骼动画、机械臂和车轮等场景如果约束处理不当,可能会导致奇怪的游戏画面在经典力学中,约束描述了系统中物体或物体之间相互关系的条件。

约束力学研究如何在一个多物体系统中考虑运动的限制条件不同类型的约束限制了物体之间的相对运动在物理引擎中,约束通常通过数学方程描述,并基于经典力学中的拉格朗日力学(Lagrangian Mechanics)和牛顿力学(Newtonian Mechanics)求解。

约束力(Constraint Forces)决定了物体之间的相对运动,使得物体遵循约定的轨迹,防止其发生不符合物理规律的运动具体来说,约束力通过改变物体的加速度来限制其自由度,从而确保其运动不违反约束条件。

人物关节是一种约束形式,称为铰链关节,它允许两个物体绕一个轴旋转,同时限制其他自由度其物理学原理涉及转动惯量(Moment of Inertia)和角动量守恒(Conservation of Angular Momentum)。

  在实际游戏中,约束同样存在计算量限制的问题,因此通常使用预设的通用约束。

PhysX 中的 Joints 例子布料与流体模拟:物体的变形与流动  在游戏中,柔体、布料和流体的模拟用于呈现物体的形变和流动行为通过这些模拟,游戏可以展示更加细腻、真实的物理效果,如人物在水中跑动激起的涟漪、挥动武器带动附近草木的摆动等。

【星界云手机】,让你的游戏生活变得更加自由!云端托管手游,挂机脚本助你24小时不间断游戏,让你无需花费过多时间和精力,轻松提升游戏实力,成就真正的高手!

  柔体在外力作用下会发生形变,相比于刚体,它们不再是完全不可变形的柔体模拟的核心目标是准确描述物体在受力时的变形行为柔体的形变与物理学中的应力(Stress)和应变(Strain)密切相关应力描述了外力作用下物体内部力的分布,用应力张量(Stress Tensor)表示;而应变描述了物体因外力而发生的形状或体积的变化。

应力与应变的关系:弹性体在应力作用下会发生线性或非线性的应变。最常用的模型是胡克定律(Hookes Law),它描述了材料在小变形下的线性弹性行为:

质点模型示意图质点模型是最常用且计算简单的柔体模拟方法之一。在这个模型中,物体被离散化为若干个质点,每个质点通过弹簧相互连接,模拟材料的弹性行为。每个质点的运动方程由牛顿第二定律给出。

Bullet 引擎展示的布料效果对于更复杂的物体形变,可以使用有限元法它通过将物体划分为许多小单元(如三角形或四面体),并求解每个单元的应力和应变来模拟物体的整体行为这种方法适用于模拟更精细的物体形变,能够处理非线性和大变形。

流体模拟是物理引擎中最具挑战性的任务之一,尤其是在真实感方面流体行为受到连续介质力学的深刻影响,特别是流体动力学和热力学流体的运动遵循纳维-斯托克斯方程(Navier-Stokes Equations),这是描述粘性流体流动的基础方程:。

  方程左边为惯性项,描述了流体的动量变化;右边第一项是压力项,描述了由于压力梯度产生的力;第二项是黏性项,描述了流体内部的摩擦力效应;第三项是体积黏性项,最后一项是外力。  对于不可压缩流体有:

  进而可以忽略体积黏性项,在游戏中甚至可以忽略黏性项,并只考虑二维的情况,简化后的方程大大减小了计算量:

  然而,这种简化的流体模拟相对简单,比如很难看到游戏中水面有着较远范围的涟漪。

黑神话中打斗时的水面波纹游戏与科研中的模拟区别  无论是游戏开发还是科研领域,都需要模拟物体的运动和相互作用然而,两者在目标、精度、计算方法、约束和求解策略等方面存在明显差异  游戏中的模拟主要侧重于实时交互性和视觉真实感。

虽然游戏中的物体按照牛顿力学的原理运动,但模拟的精度和细节通常有所简化,以提高用户体验和计算速度模拟结果更多用于增强沉浸感,而非精确预测科研中的刚体模拟旨在精确建模和性能评估,用于分析物体的力学行为、设计优化或实验验证。

其目的是提供可靠的结果,用于实际应用、理论研究或验证物理现象  尽管游戏和科研中的模拟都基于相同的物理原理,但游戏中的模拟通常会做很大程度的简化,以确保每帧能高效计算物体的运动。

  希望这篇文章能帮助大家更好地理解游戏中的物理原理。最后,给大家展示一个黑神话中的游戏画面,大家可以思考一下其中蕴含了多少物理模拟过程。

游戏狂热者必备良品!【星界云手机】以云端托管手游为核心,为你打造无与伦比的游戏体验。挂机脚本助你24小时不间断游戏,轻松练级打日常,让你成为游戏中的王者!

本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:631580315@qq.com

标签: