目录

WebGL2Fundamentals.org

Fix, Fork, Contribute

WebGL2 矩阵命名

这篇文章是 WebGL2 系列文章的延续。从基础概念开始,上篇是关于三维相机的文章。

整个网站都指出几乎所有关于 WebGL 的 100%的内容是由你决定的。除了一些预定义的名称像gl_Position,几乎所有关于 WebGL 的东西是由程序员定义的。

有一些通用的或者半通用的命名约定。尤其与矩阵相关时。我不知道谁率先使用了这些名称。我想我是从NVidia 的标准注释和语义学到的。这更加正式,通过确定的命名,尝试让着色器在更多的情况下工作。有点过时,但基本部分仍然奏效。

这是我想到的列表

  • 世界矩阵 world matrix (或者有时被成为模型矩阵 model matrix)

    转换模型顶点到世界空间的矩阵

  • 相机矩阵 camera matrix

    代表相机在世界空间中位置的矩阵。另一种说法是相机的世界矩阵

  • 视图矩阵 view matrix

    把世界空间中所有东西移到相机前。这是相机矩阵的逆。

  • 投影矩阵 projection matrix

    矩阵转换视锥体空间到裁剪空间或者一些正交空间到裁剪空间。 另一种说法是你的矩阵数学库透视函数perspective和正交函数ortho或者 orthographic返回的矩阵。

  • 本地矩阵 local matrix

    当使用场景图时,本地矩阵是是某一节点和其他节点相乘之前的矩阵。

如果着色器需要矩阵的组合,它们通常从右向左列出,即使着色器中它们是乘在右边的。例如:

worldViewProjection = projection * view * world

另外两个对于矩阵常见的操作是求逆

viewMatrix = inverse(cameraMatrix)

和转置

worldInverseTranpose = transpose(inverse(world))

希望了解这些术语,在你看其他人的着色器代码时,如果你很幸运他们使用接近或类似的名字时,你可以理解实际上在做什么。

现在,让我们接着学习动画.

有意见或建议? 在GitHub上提issue.
comments powered by Disqus