Vector opengles中的矢量变换

Vector opengles中的矢量变换,vector,opengl-es,transform,Vector,Opengl Es,Transform,为什么矢量变换在OpenGL ES中以相反的顺序进行?是因为向量是以列矩阵的形式存储的吗?这似乎使事情变得不必要的困难。这可能与向量变换不可交换这一事实有关。更改顺序可以得到不同的结果 一个简单的思维实验证明了这一点: 对于单位向量(1,0,0),围绕z轴旋转+90度,然后围绕x轴旋转+90度,将生成向量(0,0,1) 如果先围绕x轴旋转+90度,然后围绕z轴旋转+90度,则将得到一个向量(0,1,0) 我知道它不是可交换的。我想知道为什么它是向后做的。“向后”意味着有一个你认为更正确的“向前”

为什么矢量变换在OpenGL ES中以相反的顺序进行?是因为向量是以列矩阵的形式存储的吗?这似乎使事情变得不必要的困难。

这可能与向量变换不可交换这一事实有关。更改顺序可以得到不同的结果

一个简单的思维实验证明了这一点:

  • 对于单位向量(1,0,0),围绕z轴旋转+90度,然后围绕x轴旋转+90度,将生成向量(0,0,1)
  • 如果先围绕x轴旋转+90度,然后围绕z轴旋转+90度,则将得到一个向量(0,1,0)

  • 我知道它不是可交换的。我想知道为什么它是向后做的。“向后”意味着有一个你认为更正确的“向前”的方向。你能澄清一下吗?