【问题标题】:Advanced info on Unity3D's camera matrixUnity3D 相机矩阵的高级信息
【发布时间】:2014-06-11 14:44:17
【问题描述】:

我正在尝试学习 Unity3D 相机背后使用的主要概念,特别是它的矩阵,并且对 Unity 文档中没有回答 afaik 有一些疑问:

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

 MVPmatrix = mainCamera.projectionMatrix * mainCamera.worldToCameraMatrix;

其中 MVP 是一个 4x4 矩阵,而在 OpenGL 中通过以下代码表示:

 MVPmatrix = projection * view * model; 

为什么这两种方法有区别?

3) 在将前面提到的 MVPmatrix 与给定的 Vector3[4] 类型相乘时,我们是否正在转换为齐次坐标?

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

【问题讨论】:

    标签: matrix camera unity3d


    【解决方案1】:

    OpenGL

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

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

    Unity3D

    幸运的是,Unity3D 遵循这种模式:

    您可以阅读着色器here 中提供的其他变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多