【发布时间】:2018-10-13 18:53:14
【问题描述】:
【问题讨论】:
-
"什么是 m1, x1, x2, x3, y1, y2, y3, and z1, z2, z3" 这些都是图表上带有标签的项目。那你有什么不明白的?
-
@NicolBolas 那么,M1 是什么? M1 是世界坐标中的当前矩阵吗?
【问题讨论】:
它们代表了一种转变。具体来说,它们表示变换坐标系的基向量。要了解这意味着什么,我建议您观看 3Blue1Brown 的“Essence of linear algebra”,它以直观的方式解释了您需要了解的有关这些转换的所有信息。
更实际地,您要做的主要是 3 件事:您想要缩放您的对象,您想要旋转您的对象,您想要移动您的对象。所有这些都是转变。每当你看到“变换”这个词时,就把它读作“矩阵”。这些运算都是矩阵。
所以例如缩放矩阵是:
sx 0 0 0
0 sy 0 0
0 0 sz 0
0 0 0 1
其中sx 是您要在x 方向上缩放的量,依此类推。
旋转矩阵将取决于旋转轴,例如,这是一个旋转矩阵,用于将对象围绕 x 轴旋转角度t 弧度,遵循右手法则:
1 0 0 0
0 cos(t) sin(t) 0
0 -sin(t) cos(t) 0
0 0 0 1
你可以找到其他的here。
这是用于移动对象的平移矩阵:
0 0 0 tx
0 0 0 ty
0 0 0 tz
0 0 0 1
您可以通过将它们相乘来组合这些变换。因此,如果您的点是 (x, y, z),S 是您的缩放矩阵,R 是您的旋转矩阵,T 是您的平移矩阵,您可以像这样转换点:p = T*R*S*(x,y,z,1)。 1 作为“第四维”用于投影。在处理完顶点后,GPU 将 x、y 和 z 除以该值,称为 w。研究投影矩阵以了解更多信息。
【讨论】: