在 OpenGL 中检测碰撞

Posted

技术标签:

【中文标题】在 OpenGL 中检测碰撞【英文标题】:Detecting Collision in OpenGL 【发布时间】:2012-02-24 22:07:33 【问题描述】:

我目前正在使用 OpenGL 3.1 编写程序,并且正在使用 OpenGL Superbible(第 5 版)中提供的数学库。我希望能够在我的程序中包含碰撞,但我不确定如何。根据我在互联网上的研究,我相信我需要先获取要进行碰撞检测的对象的世界坐标,然后才能开始检测它们是否发生碰撞。我该怎么做?

【问题讨论】:

How to detect collision in webgl? 的可能重复项——尽管另一个问题涉及 WebGL 和 javascript,但概念是相同的。 【参考方案1】:

您应该创建一些特定元素是否可能与其他元素碰撞的近似值(所谓的边界框)。

我过去一直在使用 NVidia Physx,在我的电影中可以看到边界框:http://www.youtube.com/watch?v=dC71st1xLr0

当您有边界框时,您可以轻松判断对象是否可能发生碰撞,并且您只需分析这些元素。如果没有这种优化,由于 CPU 消耗大,可能很难做到。

【讨论】:

如何在 OpenGL 中获取对象的世界坐标。在近似之前我需要知道世界坐标吗?

以上是关于在 OpenGL 中检测碰撞的主要内容,如果未能解决你的问题,请参考以下文章

opengl中的有界框碰撞检测

四边形OpenGL之间的碰撞检测

OpenGL 3.0 窗口碰撞检测

2D 碰撞检测和 OpenGL 的东西

两个Sphere和gluLookAt函数之间的OpenGL碰撞

OpenGL 2D 圆 - 旋转 AABB 碰撞