【问题标题】:opengl transformation from model coordinate to world coordinate从模型坐标到世界坐标的opengl转换
【发布时间】:2018-10-13 18:53:14
【问题描述】:

我无法理解从模型坐标到世界坐标的转换。这是幻灯片,我的主要问题是什么是 m1、x1、x2、x3、y1、y2、y3 和 z1、z2、z3。它们代表着什么样的价值?以及我应该如何确定它。

【问题讨论】:

  • "什么是 m1, x1, x2, x3, y1, y2, y3, and z1, z2, z3" 这些都是图表上带有标签的项目。那你有什么不明白的?
  • @NicolBolas 那么,M1 是什么? M1 是世界坐标中的当前矩阵吗?

标签: graphics 3d transform


【解决方案1】:

它们代表了一种转变。具体来说,它们表示变换坐标系的基向量。要了解这意味着什么,我建议您观看 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 将 xyz 除以该值,称为 w。研究投影矩阵以了解更多信息。

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 2017-12-11
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多