【问题标题】:Fourth row of VP MatrixVP矩阵第四行
【发布时间】:2016-06-02 11:20:10
【问题描述】:

如果有关于矩阵乘法的问题。 View Projection Matrix 的第四行中存储的信息是什么? 我认为旋转和缩放信息存储在上部 3x3 矩阵中,然后在第四列中进行平移,最后一个元素设置为 1。 我正在苦苦挣扎,因为我的 VP 矩阵得到了以下结果:

当不应用旋转和平移时(注意所有值都是四舍五入的):

0.34 0 0 0
0 0.61 0 0
0 0 -1 -0.2
0 0 -1 0

通过-100应用翻译:

0.34 0 0 0
0 0.61 0 -61.73
0 0 -1 -0.2
0 0 -1 0

平移 -100,然后在 X 轴正轴上旋转 30°,然后在 Y 轴正轴上旋转 180°:

-0.34 0 -3 0
0 0.53 0.3 -53.46
0 -0.5 0.86 49.8
0 -0.5 0.8 50

我觉得不合适。有趣的部分:它有效。那么这条线的信息是什么?

0 -0.5 0.8 50

感谢您的帮助!

【问题讨论】:

    标签: c++ matrix-multiplication glm-math


    【解决方案1】:

    对我来说,你的矩阵看起来有点奇怪。通常,第四行将包含齐次坐标系的第 4 个分量,即类似于[x,y,z]/w 的东西,它需要在行中加起来为 1 以进行仿射变换。我猜你的矩阵有效,因为第四行中的奇数被考虑到矩阵的上部 3x3 部分。您是否尝试更改矩阵连接的顺序,例如 M'=M1*M0M'=M0*M1。 Jim Blinn 在他的 Dirty Pixels 和文章中对齐次坐标进行了很好的解释。

    Also, this website contains a good walkthrough regarding homogeneous transforms

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多