Понимание файла Mata Matrix - преобразование в iPhone OpenGL ES - PullRequest
0 голосов
/ 18 февраля 2012

Я работаю над анализом файла Maya dae на OpenGL ES на iPhone.

Я могу заставить все объекты успешно рендериться на iPhone, однако с одной проблемой - объекты повсюду и не выровнены друг с другом в сцене.

Я понимаю, что это потому, что Майя использует матрицы, чтобы описать, где каждый объект должен быть на сцене. В файле 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 голос
/ 18 февраля 2012

Здесь у вас есть матрица:

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

Перевод всегда

(м [12] / м [15], м [13] / м [15], м [14] / м [15])

(где m - ваша матрица). Так и есть (9983.33, -8850.6, 135036) в данном конкретном случае. Матрица вращения

1  0  0
0  0 -1
0  1  0

Прочитайте эту статью в Википедии .

Вы можете получить все эти значения или сохранить всю матрицу, а затем просто использовать glMultMatrix перед рендерингом объекта.

...