【发布时间】:2015-11-17 08:25:58
【问题描述】:
我刚刚学习了计算机图形如何与矩阵一起工作,虽然它开始变得有意义,但我仍然不明白一个点在矩阵中的确切存储位置——或者每个点 (3D) 是否存储在一个向量中?
一个顶点会看起来像
[6 8 3 x]
[5 5 2 y]
[4 9 0 z]
[1 7 8 7]
或
[x]
[y]
[z]
?
或者是一个坐标存储在一个 4x4 矩阵的不同区域,这取决于实现者如何设置它?
【问题讨论】:
我刚刚学习了计算机图形如何与矩阵一起工作,虽然它开始变得有意义,但我仍然不明白一个点在矩阵中的确切存储位置——或者每个点 (3D) 是否存储在一个向量中?
一个顶点会看起来像
[6 8 3 x]
[5 5 2 y]
[4 9 0 z]
[1 7 8 7]
或
[x]
[y]
[z]
?
或者是一个坐标存储在一个 4x4 矩阵的不同区域,这取决于实现者如何设置它?
【问题讨论】:
点通常存储在向量中。在实现中一个点有 4 个分量而我们只有三个坐标的原因是通常称为 w 的最后一个分量将点与向量区分开来。通常向量有 w=0,点有 w=1;请注意,如果减去两个点,您将得到一个向量。 p0=(x0,y0,z0,1)-P1(x1,y1,z1,1)=V(v0,v1,v2,0)。然而,矩阵用于转换顶点。它们具有 4*4 尺寸,原因有两个,一是它们必须与点具有相同的尺寸,因为它们以点为单位相乘。另一个原因是 4*4 矩阵也可以提供翻译。我强烈建议你看看这个教程:
http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/
它描述了使用矩阵、点的整个过程,以及它们如何相互协作以提供有意义的最终渲染。
【讨论】: