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

时间:2015-04-13 13:27:48

标签: c++ opengl 3d physics game-physics

我有一个风景(通过Perlin噪音产生)和一个球。我希望球沿着测地线移动(基本物理的实现:引力,摩擦)。 我想在球周围进行射线投射到场景,选择最低点并将球移动到这一点,但它不会在每种情况下都起作用,并且它不会让球跳跃(惯性)。 那么,实现这种功能的最佳方法/算法是什么?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您需要为此任务构建自己的物理库,个别工作可能需要数月才能完成。如果您仍然不想将外部引擎导出到您的项目中,至少我建议您检查开源引擎以了解它们如何处理事情。

我可以建议Bullet Physics开始。