7

参数如何为它工作以及 mProjMatrix 从该方法中得到什么?

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

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

2 回答 2

9

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

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

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

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

但最终它们都最终成为一个 4x4 透视变换矩阵。

这是一篇必读的文章

于 2013-08-10T07:18:04.310 回答
0

近/远是与视点的剪辑距离。问题是左/右和上/下值是什么,据我了解,OpenGL 文档是指近平面上的值。因此,如果您想在您所看到的点(比近平面更远)定义视图的宽度/高度,则必须将这些计算得更小。它在 ES20 上也可以这样工作吗?

于 2015-11-20T05:10:38.583 回答