我想在OpenGL应用程序中找出鼠标光标下的哪个方面。使用选择缓冲区对我来说似乎非常不准确。还有其他解决方案吗?
答案 0 :(得分:4)
使用光线交叉手动完成。使用相机矩阵(如果不明确,可以从OpenGL查询),使用它在世界空间中生成拾取光线,并查看它是否与您的特定面相交。在深度(t)上对交点进行排序,您在光标下面具有最近的面。
根据您的数据结构(层次结构等)和大小,这可能非常慢或非常有效。
答案 1 :(得分:2)
一个常见的技巧是将每个构面以不同的颜色(简单地为0x000001到n)绘制在屏幕外渲染并获得鼠标点下的颜色。
答案 2 :(得分:0)
另请参阅OpenGL常见问题解答this section。