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,因此这并不真正合适。有没有其他方法可以让透视图正常工作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,因此这并不真正合适。有没有其他方法可以让透视图正常工作
谢谢。您可以创建自己的透视矩阵。看看这个,它能帮你 定义矩阵的函数示例(未测试):
我看了一下,我尝试了上面的代码,它显示了一些东西,但它不太正确,看起来可能非常接近。绘图表面的纵横比也应该进入透视矩阵计算。这是真的,只有纵横比为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;
}