Графический дизайн, арт игры, концепт, персонажи, текстуры, анимации, модели
GameDev.ru / Графический Дизайн / Форум / Загрузка объекта из 3ds файла.

Загрузка объекта из 3ds файла.

altkПостоялецwww19 дек. 200917:42#0
Понимаю, что в сотый раз поднимаю данную тему, но у меня возникли проблемы. Главная состоит в том, что у меня не получается корректно загрузить сцену, если в ней множество объектов. Никак не могу разобраться с матрицей трансформации объекта, которая хранится в чанке с номером 0х4160. Помогите. Объясните пожалуйста, что надо делать  с теми данными, которые хранятся в этом чанке.
Вот, что я пробовал:
pObject.pVerts[index].x -= pObject.offset.x;
 pObject.pVerts[index].y -= pObject.offset.y;
 pObject.pVerts[index].z -= pObject.offset.z;

 float x = pObject.pVerts[index].x;
 float y = pObject.pVerts[index].y;
 float z = pObject.pVerts[index].z;

 pObject.pVerts[index].x = pObject.rotationMatrix[0] * x + pObject.rotationMatrix[1] * y + pObject.rotationMatrix[2] * z;
 pObject.pVerts[index].y = pObject.rotationMatrix[3] * x + pObject.rotationMatrix[4] * y + pObject.rotationMatrix[5] * z;
 pObject.pVerts[index].z = pObject.rotationMatrix[6] * x + pObject.rotationMatrix[7] * y + pObject.rotationMatrix[8] * z;

После таких преобразований объект выглядит просто ужасно :-(.
AslanПостоялецwww19 дек. 200921:49#1
altk
Лично я не использую эти матрицы. Насколько я знаю в 3ds объект хранится уже трансформированный (по матрице 1го кадра анимации). Если хочешь задействовать анимацию, надо прежде применить обратную трансформацию, чтобы получить нетрансформированный 1й кадр
SashkuSПостоялецwww19 дек. 200922:46#1
>Главная состоит в том, что у меня не получается корректно загрузить сцену, если в ней множество объектов.
дело может и не в этом, но на всякий случай напомню, что в формате 3ds нельзя сохранять больше 64килоПоли,
а по делу могу предложить выкинуть матрицы, и сохранять в формате уже трансформированные вершины...
Скриншет.
altkПостоялецwww21 дек. 200911:37#2
Я делаю дипломный проект. Один из классов отвечает за загрузку модели из 3ds файла. После загрзуки объекта некоторые его части нормально не стыкуются. Т.е. они как-бы расположены не на своём месте. Подскажите, где хранятся данные в файле, которые отвечают за объединение объектов из множества в целое(некоторые преобразования для объекта).
Чтобы было понятнее вот скрин(должен получиться цельный дом, но крыша находится не на своём месте):
Bag | Загрузка объекта из 3ds файла.
fzr125Постоялецwww21 дек. 200912:10#3
* 4160 Local axis

  Local axis info.
  The three first blocks of three floats are the definition
  (in the absolute axis) of the local axis X Y Z of the object.
  And the last block of three floats is the local center of the object.
оно?

4160H  MESH_MATRIX  float matrix[4][3];  - The Labs сайт - возможно там матрица перевернутая не 4 пака по 3 флоата, а 3 пака по 4 флоата.... Надо просто "перевернуть" И не забыть что там у - это не у! Вроде...
Я не помню, но когдато рубал этот формат... Вообще наугад создай бокс 10*10*10 в центре координат... Сохрани. Потом сдвинь этот бокс на 7 по оси Х и сохрани как бох2.3дс - и сравни где-то что-то ж изменится... =))) Брутально, но сработает =)))

altkПостоялецwww21 дек. 200918:55#4
Перепробовал много вариантов - пока результата нет. Помогите пожалуйста. Добавил считывание анимации из файла. Вроде стало немного по-лучше, но все равно объект грузиться не правильно. Т.е. геометрия объекта идеальная, а вот как его расположить, чтобы собрать единую модель пока не знаю. Получается так, что все объекты модели стоят в каком-то хаотичном порядке. Вот надо в этот хаос внести постоянство.
SashkuSПостоялецwww21 дек. 200921:24#5
Ну вот же решение проблем!. или надо обязательно с матрицами?
altkПостоялецwww21 дек. 200921:35#6
Данное решение помогло. Но наилучший вариант был бы, если бы рассказали как использовать матрицы.

/ Форум / Графический Дизайн / Моделирование

Тема в архиве.

2001—2018 © GameDev.ru — Разработка игр