我正在尝试在 3D 场景中进行“挑选”工作,其中视图被旋转以使 iPhone 处于横向模式。我正在使用 OpenGL ES 2.0(所以所有着色器,没有固定功能管道)。
我正在从渲染代码中执行 unproject 并立即使用 GL_LINES 绘制生成的光线(光线仅在我第一次触摸屏幕时被计算,所以之后我可以移动相机以从各个角度观察生成的线) .
我的 unproject 代码/调用很好(网上有很多 gluUnproject 的例子)。我的矩阵求逆代码很好(即使与一些矩阵的 excel 相比)。但是,生成的光线与我实际“点击”的位置至少偏离 5-15 度(在模拟器中它确实是一次点击,所以我期望 unproject 的精度更高)。
我的视图被旋转为横向(在创建透视投影矩阵后,我将它围绕 Z 旋转 -90 度;纵横比保持在纵向)。我相信数学关闭的问题就在这里。
有没有人有专门针对景观视图进行拾取/非投影的经验?