模拟球在 3d 景观中的运动。最简单的方法?

Simulation of ball movement in a 3d landscape. The easiest way?

我有一个风景(通过 Perlin 噪声生成)和一个球。我想让球沿着测地线移动(基础物理的实现:引力、摩擦力)。 我想在球周围对景观进行光线投射,选择最低点并将球移动到这一点,但它不会在所有情况下都有效并且它不会让球跳跃(惯性)。 那么,什么是最好的 way/algorithm 来实现这样的功能?

P.S。我不想使用任何库。

您需要为此任务构建您自己的物理库,个人努力可能需要几个月的时间。如果您仍然不想将外部引擎导出到您的项目,至少我建议您检查开源引擎以了解它们如何处理事情。

我可以建议 Bullet Physics 作为开始。

这需要一些时间,但并不难,您需要计算球的新位置,完全忽略高度场(仅重力和惯性),然后在这一步之后,检​​查碰撞(球体和三角形网格之间的基本碰撞检测),如果检测到碰撞,则生成碰撞数据并通过使用运动方向和碰撞法线方向在适当的方向上施加脉冲或力来解决它。现在,如果您以前从未接触过碰撞检测,您可能需要一些额外的时间来学习所涉及的算法,例如如何检测碰撞、如何生成碰撞数据(正常、穿透等)。