Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
8-1123878872
tazik
2005-08-13 00:34
2006.01.22
Плавные переходы с помощью BassPLayer a


6-1128492766
Mx
2005-10-05 10:12
2006.01.22
Подключение по одному порту, ответ по другому, на основе Indy


2-1136536500
TBeginner
2006-01-06 11:35
2006.01.22
Замена текста в файлах каталога


11-1118072963
Ilnur
2005-06-06 19:49
2006.01.22
messagebox properties


2-1136706229
Девушка
2006-01-08 10:43
2006.01.22
xmlns наследование