在 3D 景观中模拟球的运动.最简单的方法
Simulation of ball movement in a 3d landscape. The easiest way?
我有一个风景(通过柏林噪音生成)和一个球。我希望球沿着测地线移动(基本物理学的实现:引力,摩擦)。我想在球周围对景观进行光线投射,选择最低点并将球移动到这个点,但它不会在每种情况下都起作用,也不会让球跳跃(惯性)。那么,实现此类功能的最佳方法/算法是什么?
附言我不想使用任何库。
这需要一些时间,但这并不难,你需要计算球的新位置,完全忽略高度场(只有重力和惯性),然后,在此步骤之后,你检查碰撞(球体和三角形网格之间的基本碰撞检测),如果检测到碰撞,生成碰撞数据并通过在适当的方向上施加脉冲OR力来解决它, 使用运动方向和碰撞法线方向。现在,如果您以前从未使用过碰撞检测,则可能需要一些额外的时间来学习所涉及的算法,例如如何检测碰撞,如何生成碰撞数据(正常,穿透等)。
您需要为此任务构建自己的物理库,个人工作可能需要数月时间。如果你仍然不想将外部引擎导出到你的项目中,至少我建议你检查开源引擎,看看它们是如何处理事情的。
我可以建议子弹物理作为开始。
相关文章:
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- 请求最简单的 OpenMP 目标 GPU 示例
- 将时间戳打印到流的最简单方法
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- C++20 个模块在 clang (Windows):在最简单的示例中键入信息错误
- 对多个(可能)重叠范围进行分区的最简单算法
- 在 cpp 中最简单的图形实现
- boost::variant - 对变体应用算术的最简单方法
- 多线程 gtkmm 应用程序最简单的示例
- 创建可以遍历 std::map 值的通用模板迭代器的最简单方法是什么?
- 在C++中将算术类型转换为 std::array 的最简单方法<uint8_t>
- 标准库容器最简单、性能差的哈希类是什么?
- C++-将ASCII字符数组中可能的数值转换为字符的最简单方法
- 无法获得最简单的JNI足以在Windows 10上运行
- 从 txt 文件中读取数据的最简单方法
- 根据浮点符号对浮点进行舍入的最简单方法是什么
- 最简单的事件设计模式是什么
- 在 3D 景观中模拟球的运动.最简单的方法