我正在开发一个OpenGL项目,我需要能够点击3D空间中的内容。据我所知,gluUnproject()将完成这项工作。但我听说可能会发生意想不到的事情,准确性会被抛弃。可能只是因为这些人使用它错了,或其他东西。我应该知道关于gluUnproject()的任何不寻常的事情吗?
答案 0 :(得分:5)
我曾经问过一个问题,其中包含您似乎在搜索的内容,click here to see my question。
但基本上你可以使用gluUnproject()
来计算2D屏幕坐标(可能是鼠标坐标)到3D世界空间坐标。
然后你可以计算两个点。第一个点可能是近平面上的点,第二个点可能位于远平面上,因此您可以创建一条线,然后您可以使用该线执行碰撞检测。
以上图片来自帖子(click here to see the post),帖子实际上描述并讲述了您可能正在寻找的内容。