Render.ru

корректная загрузка 3DS файла

#1
Сравнительно недавно я решил написать загрузчик (с анимацией) моделей из файла 3DS. Сначала это казалось достаточно простым делом, однако затем (как всегда) возникли непредвиденные

трудности. Дело в том, что если при создании модели в 3DStudio Max (вер. 5.0) поизвращаться с её позицией/поворотами + позицией/поворотами Pivot point (точка определяющая локальную

систему координат объекта и являющаяся по совместительству центром вращения объекта), то корректная загрузка на этом прекращается.

Изучение доков по данной проблеме показало, в том числе, важность для решения этой проблемы блоков:

0x4160 (Локальная система координат + вектор переноса) - матрица 4x3
0xb013 (Pivot point)
???

Однако, всякие манипуляции с данными из них не дали однозначного рез-та (кое-что грузмться верно, а кое-что нет и наоборот). Как именно с ними работать инфы нет, а метод проб и ошибок, к

сожалению, на этот раз что-то затянулся...
Я пытался реализовать следующую последовательность действий:

0)гружу кучу всего, в том числе:
1) гружу вершины и данные о гранях объекта
2)гружу 0x4160
3)гружу 0xb013
4).......

4) осуществляю обратный сдвиг вершин объекта по вектору переноса и умножаю вершины на лок.сист.коорд (ЛСК)

5)сдвигаю вершины на позицию из 0-го кадра анимации
6)поворачиваю объект на данные 0-го кадра анимации

(делаю именно нулевой кадр анимации, т.к. пока я просто добиваюсь нормального исходного отображения объекта, а прочая анимация для меня в данное время не важна)

7)??????????????? что надо делать еще - без понятия

Может, кто-нибудь имеющий опыт загрузки моделей из файла 3ds поделится своими соображениями по данной теме? Заранее благодарен.

P.S. пишу на C++, OpenGL
 
Сверху