Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
2-1136464825
ArtemESC
2006-01-05 15:40
2006.01.22
Процесс...


14-1133813568
Rouse_
2005-12-05 23:12
2006.01.22
Новогодний MMP (Совместный)


2-1136659178
Revan
2006-01-07 21:39
2006.01.22
Опять RENDOMIZE


3-1132822268
Drizhenko
2005-11-24 11:51
2006.01.22
Пингование по базе данных


2-1136555044
Grigirian
2006-01-06 16:44
2006.01.22
Вывести сообщение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский