什么是Matrix.frustumM(mProjMatrix,0,-ratio,ratio,-1,1,3,7);在OpenGL ES 20中?

时间:2013-08-09 14:56:41

标签: java android opengl-es

参数如何适用于它以及mProjMatrix从该方法获得的确切内容?

为什么'float mProjMatrix = new float [16];`用16声明,我可以使用另一个数字吗?

    float mProjMatrix = new float[16];
    Matrix.frustumM(mProjMatrix, 0, -ratio, ratio, -1, 1, 3, 7);

2 个答案:

答案 0 :(得分:9)

视锥体只是透视投影的直观表示,用于将世界坐标空间中的3D点转换为屏幕上的2D点。

有多种方法可以定义投影矩阵(至少我个人使用过):

  1. 通过指定6个剪裁平面

  2. 通过指定纵横比,远近剪裁平面,视角

  3. 但最终它们最终都是一个4x4透视变换矩阵。

    必须阅读article

答案 1 :(得分:0)

近/远是距离视点的剪切距离。 问题是左/右和上/下值是什么,据我所知the OpenGL docs表示近平面上的值。因此,如果要在您查看的点(比近平面更远)定义视图的宽度/高度,则必须将它们计算得更小。它在ES20上也是这样的吗?