2012-02-18 89 views
0

我正在解析Maya dae文件到iPhone上的OpenGL ES上。了解Maya矩阵文件 - 转换为OpenGL ES iPhone

我能够让所有对象在iPhone上成功呈现,但是有一个问题 - 对象遍布整个场所,并且不与场景中的另一个对齐。

我知道这是因为Maya使用矩阵来描述每个对象应该在场景中的位置。在DAE文件,就像这样:

<node id="objects01-node" name="object01"> 
      <matrix>1 0 0 9983.33 0 0 -1 -8850.6 0 1 0 135036 0 0 0 1</matrix> 
      <instance_geometry url="#object01-mesh"> 

我的问题是没有人知道如何翻译这个矩阵的数据,然后将其应用到我的场景模式是什么?

在此先感谢您的任何建议!

回答

1

在这里,你已经得到了矩阵:

1 0 0 9983.33 
0 0 -1 -8850.6 
0 1 0 135036 
0 0 0 1 

翻译总是

(M [12]/M [15],米[13]/M [15] m [14]/m [15])

(其中m是你的矩阵)。 因此,在这种特殊情况下是(9983.33,-8850.6,135036)。 旋转矩阵

1 0 0 
0 0 -1 
0 1 0 

阅读本article on Wikipedia

您可以获取所有这些值,也可以存储整个矩阵,然后在渲染对象之前使用glMultMatrix。

+0

Hi Max - m [12]/m [15]是什么意思?它是位置吗?矩阵中的12位除以位置15? – GuybrushThreepwood 2012-02-18 10:12:50

+0

m [15]不是位置。它是增值(通常命名为w)。我们需要它能够组合(乘法)旋转和平移矩阵。您应该阅读很多齐次坐标。 W通常是1. – Max 2012-02-18 10:20:15

+0

谢谢 - 我很高兴马克斯存在。 – GuybrushThreepwood 2012-02-18 11:42:42