![]() |
|
![]() ![]() ![]() |
|
zb8194 |
|
|||
Unregistered |
Сравнительно недавно я решил написать загрузчик (с анимацией) моделей из файла 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 |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Я думаю, что ты велосипед изобретаешь. Дело в том, что уже давным давно написаны всякие разные 3ds loader'ы. У меня например есть 3ds importer, который написал Lev Povalahev.
Структура этих 3ds файлов довольно таки навороченная и чтобы файл загрузить надо написать достаточно большое кол-во кода. Я бы тебе предложил найти что-нибудь готовое и посмотреть на это и если все еще останется желание заниматья этим то пожалуйста. У меня оно быстро отпало, когда я увидел сколько там всего понаписано. ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
zb8194 |
|
|||
Unregistered |
Велосипед велосипедом, конечно, однако просто неохота останавливаться на достигнутом (так как оно, в своем теперешнем состоянии меня не удовлетворяет).
К слову говоря, методом обнуления различных блоков 3DS файла, я выяснил, что для корректного отобьражения объекта в нулевом кадре анимация вообще не важна. Важны только блоки: 0x4160 и 0xb013 (см выше). Как их надо соотносить между собой, правда, для меня пока загадка. Надо как-то комбинировать умножение прямой и обратной маттрицы, что в 0x4160, а также что-то замутить в промежутке с 0xb013, но что?????? |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Качай тут:
http://www.levp.de/3d/ Изучай как этот чувак все сделал и проводи параллели ![]() Там помоему до фига информации... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
zb8194 |
|
|||
Unregistered |
К сожалению упомянутый выше загрузчик оказался не в состоянии решить проблему злосчастного pivot point. Картина, выдаваеваемая им в окне визуализации 100% соответствует моей - т.е. она также некорректна. Увы....
Развивая тему - конечно, если этот нехороший pivot не трогать, а оставлять в 3DS Max по умолчанию, то, в принципе, жить можно, однако тяжко. Ибо значительно сужаются горизонты применения проги - использовать её будет можно с несамыми хилыми оговорками... В любом случае спасибо за помощь. Ну а вообще, как говаривал один персонаж - будем искать. |
|||
|
||||
WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
качни GlScene на glscene.org, покапайся в срцах, там хороший алгоритм =)
|
|||
|
||||
zb8194 |
|
|||
Unregistered |
Понемногу продвигаюсь самостоятельно. Теперь уже многое стало яснее (хотя и не все). Насчет glscene.org - посмотрю, хотя не уверен. Этот 3DS - такая скотина - одни файлы грузятся нормально, другие нет... Слишком много факторов на это влияет. Хотя определенный прогресс был буквально сегодня достигнут. У меня стали вроде нормально корректно грузиться даже самые мудреные файлы, но без масштабирования и иерархии пока. Надеюсь так же будет и дальше (теперь дорогу видно, надеюсь).
И кстати - насчет:
это я погорячился.Бывает. Еще как необходимы! |
|||
|
||||
zb8194 |
|
|||
Unregistered |
Это я насчет блоков анимации, масштабирования и пр. |
|||
|
||||
yurgen20 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 3.4.2003 Репутация: нет Всего: нет |
Слушай, а исходники выкинуть не жалко будет? Хотя бы недоделанные. Очень уж интересная тема.
|
|||
|
||||
ver01 |
|
|||
Unregistered |
что за бред,почему блок TRACKPIVOT,который 0xb013,хранит неправильные координаты???мне нужно знать координаты центра объекта.помогите!
|
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Может байты перевернуты?
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]() ![]() ![]() |
|
и последнее: форум фотошоп предназначен для того, чтобы учиться. Топики с просьбами "сделайте мне" будут удаляться в раздел Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, DezmASter, z-END, Caramel. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Photoshop, Illustrator, Corel и т.п. | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |