Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 模型视图矩阵*投影矩阵_Android_Opengl Es 2.0 - Fatal编程技术网

Android 模型视图矩阵*投影矩阵

Android 模型视图矩阵*投影矩阵,android,opengl-es-2.0,Android,Opengl Es 2.0,我正在学习Android的OpenGl。本网站上的教程:,它采用模型矩阵乘以视图矩阵和乘以投影矩阵,以便在标准化设备坐标上显示。然而,在《Android版OpenGL ES2》一书的第3章中,它只采用模式矩阵*投影矩阵。所以我的问题是:是否有必要需要3个矩阵,如果没有,在哪种情况下我使用模型和投影,在哪种情况下我使用模型视图投影?如果您计划移动“相机”,这是必要的因为变换视图矩阵会移动整个世界。通常,当您希望在场景中包含可以移动和环视的摄影机时,可以使用视图矩阵 因此,视图矩阵用于表示摄影机在3

我正在学习Android的OpenGl。本网站上的教程:,它采用模型矩阵乘以视图矩阵和乘以投影矩阵,以便在标准化设备坐标上显示。然而,在《Android版OpenGL ES2》一书的第3章中,它只采用模式矩阵*投影矩阵。所以我的问题是:是否有必要需要3个矩阵,如果没有,在哪种情况下我使用模型和投影,在哪种情况下我使用模型视图投影?

如果您计划移动“相机”,这是必要的因为变换视图矩阵会移动整个世界。

通常,当您希望在场景中包含可以移动和环视的摄影机时,可以使用视图矩阵


因此,视图矩阵用于表示摄影机在3d世界中的位置和方向。它用于将3d世界中的对象从“世界空间”(对象的精确位置和旋转)转换为“相机空间”(对象在相机上的位置和旋转)。

Model*View*Projection
对于OpenGL来说实际上是完全错误的。OpenGL使用列主矩阵,这意味着规范(形式数学表示法)实际上是
Projection*View*Model
。Direct3D使用行主视图,这实际上是正确的。这就是说,如果转置结果,则可以执行任意顺序,但一般认为,在GLSL中使用列主规范形式,并尽可能避免转置。