Matrix Unity3D和x27的高级信息;s摄像机矩阵

Matrix Unity3D和x27的高级信息;s摄像机矩阵,matrix,camera,unity3d,Matrix,Camera,Unity3d,我试图了解Unity3D相机背后使用的主要概念,尤其是其矩阵,并怀疑Unity Documentation中没有回答afaik: 1) Unity相机是基于OpenGL相机的吗?例如,关于相机的OpenGL教程可以在Unity中应用吗?如果是,那么在表示ModelViewProjection矩阵时,在Unity中我们有: MVPmatrix = mainCamera.projectionMatrix * mainCamera.worldToCameraMatrix; 其中,MVP是4x4矩阵

我试图了解Unity3D相机背后使用的主要概念,尤其是其矩阵,并怀疑Unity Documentation中没有回答afaik:

1) Unity相机是基于OpenGL相机的吗?例如,关于相机的OpenGL教程可以在Unity中应用吗?如果是,那么在表示ModelViewProjection矩阵时,在Unity中我们有:

 MVPmatrix = mainCamera.projectionMatrix * mainCamera.worldToCameraMatrix;
其中,MVP是4x4矩阵,而在OpenGL中,则通过以下代码表示:

 MVPmatrix = projection * view * model; 
为什么这两种方法不同

3) 当将前面提到的MVP矩阵与给定的向量3[4]类型相乘时,我们是否正在转换为齐次坐标

2) 如果1)的答案是“否”,我在哪里可以获得有关Unity3D相机矩阵的其他信息?

OpenGL 在现代OpenGL中没有相机这样的东西。顶点变换使用顶点着色器完成。它可以使用任意数量的矩阵。您甚至可以在一个应用程序中使用需要不同矩阵集的不同着色器

在特定教程中,使用了3个矩阵:模型、视图和投影。这是很多3D应用程序中使用的一种非常常见的方法。您可以将其视为常见的3D图形编程模式

Unity3D 幸运的是,Unity3D遵循以下模式:

  • 模型矩阵。在脚本中:。在顶点着色器中:_Object2World
  • 查看矩阵。在脚本中:。在顶点着色器中:UNITY\u MATRIX\u V
  • 投影矩阵。在脚本中:。在顶点着色器中:UNITY\u MATRIX\P
您可以阅读有关着色器中可用的其他变量的信息