Android opengl在左/右方向上存在倾斜截头体的问题

Android opengl在左/右方向上存在倾斜截头体的问题,android,opengl-es,frustum,Android,Opengl Es,Frustum,我正在写一个简单的陀螺仪测试应用程序,我想通过将手机倾斜到不同的方向,来测试多边形的不同侧面。它类似于头部跟踪渲染技术,但我假设眼睛位置固定,只有手机相对于眼睛(相机)移动 为此,我在opengl es中使用了倾斜的平截头体技巧。我可以毫无问题地在顶部/底部/近/远方向偏移平截头体。当我把偏移值除以2,得到的是左/右方向时,出现了非常奇怪的部分。有效地“缩小”了截锥体的实际尺寸 以下是左/右方向带有2除法错误的工作示例代码: // xEyePhone is the transform of ey

我正在写一个简单的陀螺仪测试应用程序,我想通过将手机倾斜到不同的方向,来测试多边形的不同侧面。它类似于头部跟踪渲染技术,但我假设眼睛位置固定,只有手机相对于眼睛(相机)移动

为此,我在opengl es中使用了倾斜的平截头体技巧。我可以毫无问题地在顶部/底部/近/远方向偏移平截头体。当我把偏移值除以2,得到的是左/右方向时,出现了非常奇怪的部分。有效地“缩小”了截锥体的实际尺寸

以下是左/右方向带有2除法错误的工作示例代码:

// xEyePhone is the transform of eye relative to the screen, note the /2.0f for the 3rd and 4th params. 
Matrix.frustumM(_ProjMatrix, 0, -ratio-xEyePhone[12]/2.0f, ratio-xEyePhone[12]/2.0f, 1-xEyePhone[13], 1-xEyePhone[13], xEyePhone[14], xEyePhone[14]+10);

Matrix.setLookAtM(_VMatrix, 0, xEyePhone[12], xEyePhone[13], xEyePhone[14],
XEyeCenterWorld[12], xEyeCenterWorld[13], xEyeCenterWorld[14],
XUpVectorWorld[12], xUpVectorWorld[13], xUpVectorWorld[14]);

有人见过这个吗

您可以对投影应用look-at矩阵。你不应该这样做。投影变换仅设置“虚拟透镜”的属性。在modelview变换中放置摄影机

不保持这两个独立会导致在实现照明时出现问题。

可能与否有关,这是框架中的一个缺陷。