Java Android OpenGL ES 2.0三维透视图

Java Android OpenGL ES 2.0三维透视图,java,android,opengl-es-2.0,Java,Android,Opengl Es 2.0,我是Android上OpenGL ES 2.0的新手,我曾尝试使用Matrix.orthoM创建正交视图,但目前在获取透视视图时遇到问题。我知道使用LWJGL我可以使用GLU.GLU透视图来实现这一点,我知道你可以在Android上使用OpenGL ES 1.0来实现这一点,但我不知道如何在OpenGL ES 2.0中以同样的方式实现这一点。我发现有一种方法可以使用Matrix.perspectiveM实现这一点,但这只适用于API 14,因此这并不真正合适。有没有其他方法可以让透视图正常工作

我是Android上OpenGL ES 2.0的新手,我曾尝试使用Matrix.orthoM创建正交视图,但目前在获取透视视图时遇到问题。我知道使用LWJGL我可以使用GLU.GLU透视图来实现这一点,我知道你可以在Android上使用OpenGL ES 1.0来实现这一点,但我不知道如何在OpenGL ES 2.0中以同样的方式实现这一点。我发现有一种方法可以使用Matrix.perspectiveM实现这一点,但这只适用于API 14,因此这并不真正合适。有没有其他方法可以让透视图正常工作


谢谢。

您可以创建自己的透视矩阵。看看这个,它能帮你

定义矩阵的函数示例(未测试):


我看了一下,我尝试了上面的代码,它显示了一些东西,但它不太正确,看起来可能非常接近。绘图表面的纵横比也应该进入透视矩阵计算。这是真的,只有纵横比为1时才有效。您始终可以编写自己的frustrum和透视函数。请说明你的解决方案,你说你已经成功了。
void setperspectivemat(float[] mat, float near, float far, float fov)
{

 float scale = 1 / Math.tan(Math.toRadians(fov * 0.5));
 mat[0] = scale;
 mat[5] = scale;
 mat[10] = - far / (far - near);
 mat[11] = - far * near / (far - near);
 mat[14] = - 1;
 mat[15] = 0;
}