参数如何为它工作以及 mProjMatrix 从该方法中得到什么?
还有为什么'float mProjMatrix = new float[16];'用16声明,我可以用另一个数字代替吗?
float mProjMatrix = new float[16];
Matrix.frustumM(mProjMatrix, 0, -ratio, ratio, -1, 1, 3, 7);
视锥体只是透视投影的视觉表示,用于将世界坐标空间中的 3D 点转换为屏幕上的 2D 点。
有多种方法可以定义投影矩阵(至少我个人使用过):
通过指定 6 个剪切平面
通过指定纵横比、远近剪裁平面、视场角
但最终它们都最终成为一个 4x4 透视变换矩阵。
这是一篇必读的文章。
近/远是与视点的剪辑距离。问题是左/右和上/下值是什么,据我了解,OpenGL 文档是指近平面上的值。因此,如果您想在您所看到的点(比近平面更远)定义视图的宽度/高度,则必须将这些计算得更小。它在 ES20 上也可以这样工作吗?