Форум: "Игры";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Вниз3DS? Найти похожие ветки
← →
Goorus © (2005-08-11 06:58) [0]Всё же не понимаю я этого формата, да похоже, что до конца мало кто понимает :) Я даже сишный ридер перевёл на делфи (ну не было у меня компилятора для си), это помогло увидеть проблему.
Так вот есть там данные о траектории объекта
CHUNK_KEYFRAMER = $B000; // [-] информация об анимации
CHUNK_AMBIENTKEY = $B001;
CHUNK_TRACKINFO = $B002; // [-] поведение объекта
CHUNK_TRACKOBJNAME = $B010; // [+] название этого объекта, номер родителя
CHUNK_TRACKPIVOT = $B013; // [+] центр вращения объекта
CHUNK_TRACKPOS = $B020; // [+] траектория объекта
CHUNK_TRACKROTATE = $B021; // [+] траектория вращения объекта
CHUNK_TRACKSCALE = $B022; // [+] масштаб объекта
CHUNK_TRACKMORPH = $B026;
CHUNK_TRACKHIDE = $B029;
CHUNK_OBJNUMBER = $B030; // [+] ???
в конце - ссылка на ридер + пример, запускать экзешник нужно с параметром, но можно просто ani_1.bat, там прописано.
1) Если посмотреть пример, то CHUNK_TRACKSCALE и CHUNK_TRACKROTATE описаны правильно, а вот в CHUNK_TRACKPOS (Position keys) нет 11-го, а два 10-х фрейма! Как понимать?
Файл я не редактировал, это всё было создано максом 6-ой версии.
2) CHUNK_TRACKPIVOT - как использовать? Вектор и угол, считанные в CHUNK_TRACKROTATE, используются для создания матрицы поворота, и, даже не знаю, каким боком CHUNK_TRACKPIVOT прицепить?
3) CHUNK_OBJNUMBER - что это? Номер объекта, о котором сейчас будут данные? Нет, т.к. дальше в CHUNK_TRACKOBJNAME название объекта не совпадает, кроме того, если объектов всего 4 (индексы от 0 до 3), то эта величина может принимать значение 4..
Вот исходник + экзешник + пример:
http://none.hoha.ru/delphi_3ds_reader.rar
← →
Fosgen (2005-08-11 08:09) [1]Насколько я понял - стоит вопрос о анимированности 3ds формата из под Delphi?
← →
Goorus © (2005-08-11 08:21) [2]Ну да ))
Хотелось бы разъяснений к формату хранения анимации.
← →
XProger © (2005-08-11 09:02) [3]CHUNK_TRACKPIVOT - позиция системы координат объекта относительно мировой.
CHUNK_TRACKROTATE - кватернион описывающий ориентацию объекта в его системе координат.
CHUNK_OBJNUMBER - скорее всего используется в качестве UID для объекта, т.к. имена у объектов могут быть одинаковыми.
P.S.
Не проще ли будет написать скрипт для макса в свой формат, дабы не тащить/изучать все "прелести" 3ds за собой?
← →
Goorus © (2005-08-11 13:52) [4]CHUNK_TRACKPIVOT - относительно мировой СК, либо относительно СК родительского объекта?
>>CHUNK_OBJNUMBER - скорее всего используется в качестве UID для объекта
Сомнительный способ. Почему в анимации, а не при описании точек объекта? Навряд ли. Да и не используется нигде.
Может где-нибудь есть подробное описание? Можно на английском.
Начал дальше разбираться, так там и с маштабированием чего-то намучено.
Скрипт для макса писать пока не хочется, надеюсь разобраться с 3DS, мне ведь не много надо: объекты, материалы, анимация.
Можно даже без материалов обойтись.
← →
Goorus © (2005-08-11 13:52) [5]CHUNK_TRACKPIVOT - относительно мировой СК, либо относительно СК родительского объекта?
>>CHUNK_OBJNUMBER - скорее всего используется в качестве UID для объекта
Сомнительный способ. Почему в анимации, а не при описании точек объекта? Навряд ли. Да и не используется нигде.
Может где-нибудь есть подробное описание? Можно на английском.
Начал дальше разбираться, так там и с маштабированием чего-то намучено.
Скрипт для макса писать пока не хочется, надеюсь разобраться с 3DS, мне ведь не много надо: объекты, материалы, анимация.
Можно даже без материалов обойтись.
← →
Кефир87 © (2005-08-12 02:49) [6]Кстати, раз уж речь зашла... А что, правда что в 3DS нет нормалей?! Я про это ничего не нашел. Сделал экспортер, только для вершин, треугольников и текстурных координат... а вот нормали? Как с ними быть? Все лето, на отдыхе, пытался придумать как самому расчитать нормали и пришел к выводу что это не возможно. Переубедите меня если я не прав. 8)
← →
XProger © (2005-08-12 05:14) [7]Кефир87, приехали...
Есть треугольник. У треугольника 3 вершины (v1, v2, v3)
Получим из них векторы образующие 2 ребра треугольника
w1 = v2 - v1
w2 = v3 - v2
Затем находим векторное произведение этих w1 и w2. В итоге получим вектор перпендикулярный плоскости треугольника. Этот вектор будет нормалью, которую желательно привести к единичному виду поделив все её координаты на её длину.
3DS записыаает вершины в определённом порядке, чтобы знак векторного произведения не менялся. Также при желании в 3ds можно хранить нормали и группы сглаживания.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c