如何解决物理引擎实际上是如何模拟物理的?
| 关闭。这个问题需要更加集中。它当前不接受答案。解决方法
创建(健壮的)物理引擎要比一开始看起来要复杂得多。诀窍是尽可能多地伪造而不是计算确切值。首先,本博客文章进行了很好的介绍。我认为Thomas Jakobsen的这篇论文也是不错的阅读,并介绍了某些概念。该博客也有一些有趣的文章,解释了集成商的详细信息以及如何管理在线游戏的物理原理。
查看诸如Box2D之类的物理引擎的源代码是了解实现的一个好主意,但是如果您不知道它们在做什么的理论,可能会感到困惑。这样做的原因是由于该理论通常效率太低而无法在实时游戏中实现,因此使用算法和技术在真实性和速度之间取得平衡。
如果您要在商业游戏中使用它来创建自己的物理引擎,我建议选择一个已经存在的解决方案。 (例如,《愤怒的小鸟》使用Box2D)。但是,如果您是出于体验和学习物理引擎的目的而做,那肯定会教给您很多有关效率和智能技术的知识。
, 原则上,所有物理引擎都只是牛顿第二运动定律的直接应用:
加速度=力/质量
通过随着时间的推移积分加速度,您可以获得速度。通过积分速度,您可以获得对象在空间中的位置。使用Runge-Kutta之类的数值对积分进行数字化处理。
主要的并发症来自:
处理旋转运动
处理冲撞事件,例如碰撞和爆炸
在速度的极端检测碰撞。在检测到碰撞之前,物体可能以高速度最终穿透甚至穿过彼此。在低速下,如何稳固地处理一个放在另一物体上的物体而不会抖动或滑移是一个挑战。
运动联动装置,其中对象部分相互约束(如铰链或滑块)
计算复杂物体(例如汽车或飞机)的力和扭矩
实时有效地处理数百或数千个对象
一个不错的起点是模拟在重力影响下在二维盒子中弹跳的单个粒子。然后,给粒子指定半径,添加更多的半径,并计算它们之间的碰撞。届时,您将拥有一个足以用于简单游戏的基本物理引擎。
, 如何查看一个来源。那就是我要开始的地方。
http://www.tokamakphysics.com/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。