collision-detection - 多物体碰撞检测与响应
问题描述
所以我在 3D 空间中实现了凸多面体的碰撞检测,使用 GJK 检测碰撞并使用 EPA 获取分辨率矢量。当一个对象只与另一个对象发生碰撞时效果很好,当一个对象与多个对象发生碰撞时如何处理碰撞?考虑以下场景,红框是玩家向右走,两个黑框只是玩家可以行走的一些物体(受重力影响,玩家在这些物体内向下移动): 与右框碰撞的最小分辨率向量为直接向左的方向,与左框碰撞的最小分辨率向量为笔直向上的方向。因为盒子可以以任意顺序出现,首先从正确的对象中解析玩家会导致突然停止。然后玩家会从左边的物体上得到解决,将他/她向上移动。效果是玩家撞到了墙。首先从左侧对象开始可以缓解这个问题,因为这样玩家就不会与右侧对象发生碰撞。所以也许有某种不同的顺序来应用分辨率向量?
你如何防止这种情况发生?我显然不希望玩家在冲水物体上运行然后突然停止。
对象和玩家也可以是 3D 空间中的任意凸多面体,如果玩家沿着墙壁滑动或跳跃并滑过天花板,该解决方案应该能够处理相同的情况。
解决方案
推荐阅读
- typescript - 禁止 catch 中的任何错误打字稿类型
- android - Android Fragment导航动画启动时背景变为透明
- c# - 如何选择一个应用程序以使用进程控件在 c# 中启动?
- c - 在 OpenSSL 中实现 PQC 算法
- c# - 包括 Azure 源 DLL 包的调试符号
- html - 没有边界的CSS浮动问题
- wordpress - 显示附加到自定义帖子类型的用户 - ACF
- python - 在张量流中,为什么 tf.equal(tf.size(x), 0) 条件即使对于空张量也总是 False?
- c++ - 如何减少浮点变量直到它正好为零
- r - 如何解决 geom_errorbar 中的以下错误:“需要以下缺失的美学:x 或 xmin 和 xmax”?