前天,我们的国产游戏《黑神话·悟空》获得了TGA年度最佳动作游戏奖与玩家之声奖,再加上最近新出的更新,小编也是兴冲冲重新下回黑神话准备再体验一把八十一难。玩着玩着就在想,游戏中物理过程做的那么真实,比如水中涟漪、雪中行进痕迹等,这些是如何做到的呢?
也不是所有游戏中有物理模拟有关都做的那么好,也可以发现许多BUG,比如......
在经典的物理世界中发生最多的事件莫过于碰撞了,所以要想游戏中足够真实,那么碰撞是一定是最先需要考虑的过程。除了刚体的碰撞外,游戏中自然少不了许多部件的连接与转动,这就是约束这一物理概念在背后起作用。例如,游戏中的小人要想抓取一个物体,就相当于手与物体的接触面产生了约束。
在物理引擎中,约束(Constraints)用于限制物体的运动范围和相对位置。它们在游戏和仿真中有着广泛的应用,如角色的骨骼动画、机械臂、车轮等。在模拟过程中如果做不好约束很可能得到非常奇怪的游戏画面。
在游戏中,柔体、布料和流体的模拟用于呈现物体的形变和流动行为,这些行为不仅遵循经典物理定律,还依赖于数值计算方法来实现。通过这些模拟,游戏可以展示更加细腻、真实的物理效果,如人物在水中跑动激起的涟漪、挥动武器时带动附近草木的吹动等现象。柔体是指在外力作用下会发生形变的物体,相比于刚体,它们不再是完全不可变形的。柔体模拟的核心目标是准确描述物体在受到力时的变形行为。柔体的形变与物理学中的应力(Stress)和应变(Strain)密切相关。应力是描述外力作用下物体内部力的分布,通常用应力张量(Stress Tensor)表示。而应变是描述物体因外力而发生的形状或体积的变化。应力与应变的关系:弹性体在应力作用下会发生线性或非线性的应变。最常用的模型是胡克定律(Hooke's Law),它描述了材料在小变形下的线性弹性行为:其中是应力,是应变,是弹性模量。对于刚性物体,为零,表示没有形变;而对于柔体,无论是游戏开发还是科研领域,都需要模拟物体的运动和相互作用。然而,游戏中的刚体模拟和科研中的刚体模拟在目标、精度、计算方法、约束和求解策略等方面有着明显的不同。游戏中的模拟主要侧重于实时交互性和视觉真实感。游戏中的物体虽然按照牛顿力学的原理运动,但模拟的精度和细节往往会有所简化,以便达到更好的用户体验和更快的计算速度。模拟结果更多的是用于增强玩家的沉浸感,而不是精确的物理预测。科研中的刚体模拟目标通常是精确建模和性能评估,用于分析物体的力学行为、设计优化或实验验证。模拟的目的是提供可靠的结果,用于实际应用、理论研究或者验证物理现象。游戏中的模拟与科研中的模拟虽然都基于相同的物理原理,但是游戏中的模拟通常会做很大程度的简化,以确保在每一帧中能够高效地计算物体的运动。不知道大家有没有对游戏中的物理有了更深的理解呢,这里最后给大家一个黑神话中的游戏画面,大家可以想想这之中又蕴含多少物理模拟过程~[1] Eberly, D. (2003). "Game Physics." Morgan Kaufmann.[2] Witkin, A. & Baraff, D. (2001). "Physically Based Modeling: Principles and Practice." SIGGRAPH Course Notes.[3] https://www.zhihu.com/question/277300055[4] https://developer.aliyun.com/article/432351
[5] https://zhuanlan.zhihu.com/p/6790616863.为啥外国人喜欢大冷天光腿穿短裤,不怕得老寒腿吗???