Автор Тема: Вопросы про формат .bin  (Прочитано 9251 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nemyax

  • Мастер Теней
  • Сообщений: 4186
  • Нёмыч
Вопросы про формат .bin
« Ответ #15 : 22 Мая 2013 00:33:40 »
Предположения на уровне 3D-моделера не работавшего в дромадере.
Да, именно так. Ну до поры лазить в дармоед и не требуется. Всё равно Zontik, который его знает вдоль и поперёк, отвечает чётко и ясно =)
объединения (именно так переводится split)
Split переводится ровно наоборот.

Оффлайн UL

  • Мастер Теней
  • Сообщений: 3416
  • Lord Vivek, Indigriss13, Utgard-Loki, Logan
    • Omikron Game
Вопросы про формат .bin
« Ответ #16 : 22 Мая 2013 08:20:37 »
Split переводится ровно наоборот.

 :rolleyes: П-лять, точно. :embarassed: Чёт щёлкнуло в башке, нарадовался, что программеры Thief были настолько круты, что уже использовали такую фишку в те времена.
« Последнее редактирование: 22 Мая 2013 08:24:05 от UL »
Ничто не имеет значения, только цель.

Оффлайн Zontik

  • Призрак
  • Сообщений: 14285
    • Тёмное место
Вопросы про формат .bin
« Ответ #17 : 22 Мая 2013 09:20:22 »
Насчет узлов ничего не понял, да и как могут выглядеть "проявления узловатости", представляю с трудом. Короче, поосторожнее с мнением дармоеда, ничего не смыслящего в 3D-моделировании (это я про себя, если кто не понял).
Дайте глазам отдохнуть! Тёмное место

Оффлайн nemyax

  • Мастер Теней
  • Сообщений: 4186
  • Нёмыч
Вопросы про формат .bin
« Ответ #18 : 22 Мая 2013 11:53:33 »
Насчет узлов ничего не понял, да и как могут выглядеть "проявления узловатости", представляю с трудом.
Вот структы этих типов узлов:
typedef struct mds_node_split {
   mde_node type;             // type of node
   mds_sphere sphere;      // bounding sphere
   ushort   pgons_before; // number of polygons to render before split
   ushort   norm;        // index of polygon normal
   float    d;          // plane equation d for normal
   ushort   node_behind; // offset of node in back of the plane
   ushort   node_front;    // offset of node in front of the plane
   ushort   pgons_after; // number of polygons to render after split
   ushort   polys[];
} mds_node_split;

typedef struct mds_node_call {
   mde_node type;
   mds_sphere  sphere;
   ushort   pgons_before; // number of polygons to render before call
   ushort   node_call; // offset of node to jump to
   ushort   pgons_after; // number of polygons to render after call
   ushort   polys[];
} mds_node_call;

typedef struct mds_node_vcall {
   mde_node type;
   mds_sphere  sphere;
   ushort   index; // index of vcall to call
} mds_node_vcall;
Надо полагать:
- Split зачем-то разрезает модель.
- Call избирательно отрисовывает геометрию до и после некоего вызова.
- Vcall делает хз что.
поосторожнее с мнением дармоеда, ничего не смыслящего в 3D-моделировании (это я про себя, если кто не понял).
Если опытные моддеры с ходу не могут сказать, про что это, то можно сделать вид, что этого не существует. Вместо этого можно использовать обычные ноды, тупо содержащие геометрию.

Оффлайн nemyax

  • Мастер Теней
  • Сообщений: 4186
  • Нёмыч
Вопросы про формат .bin
« Ответ #19 : 26 Июня 2013 01:41:06 »
А как вообще в наш век HD-порнографии производят .bin-файлы? Есть способы кроме перегона из .3ds легаси-утилитой?

Оффлайн LongShad

  • Тень
  • Сообщений: 6290
  • Длиннотень
Вопросы про формат .bin
« Ответ #20 : 26 Июня 2013 07:36:02 »
Есть еще плагин для Blender'а, кажись.

Оффлайн nemyax

  • Мастер Теней
  • Сообщений: 4186
  • Нёмыч
Вопросы про формат .bin
« Ответ #21 : 26 Июня 2013 11:18:44 »
Есть еще плагин для Blender'а, кажись.
Я вот не уверен, что он пишет бинки напрямую. Вроде бы он сначала откашливает .3ds, а потом дёргает всё тот же старый усталый 3ds2bin.
А исходников 3ds2bin, надо думать, нет вообще ни у кого?

Оффлайн nemyax

  • Мастер Теней
  • Сообщений: 4186
  • Нёмыч
Вопросы про формат .bin
« Ответ #22 : 02 Июля 2013 16:36:51 »
Есть ещё  в формате некая сущность под названием light.

// Each element, x,y,z has 1 bit of sign, 1 bit of integer, and 8 bits
// of fraction, for 10 bytes total.  So the x, y, and z values of each
// lighting normal can be extracted in the following manner:

#define X_NORM(norm) ((short)((norm>>16)&0xFFC0))/16384.0
#define Y_NORM(norm) ((short)((norm>>6)&0xFFC0))/16384.0
#define Z_NORM(norm)  ((short)((norm<<4)&0xFFC0))/16384.0

typedef struct mds_light {
   ushort mat;    // material index
   ushort point; // index of of vertex
   ulong norm;    // compacted normal
} mds_light;

Комментарии утверждают, что это нормаль. Но по ходу дела нихрена подобного. В сорсах удалось найти только один пример, когда понадобилась эта структура. Да и там распакованные флоты использовались как множители для компонентов нормали.
Штатных файлов, где совсем нету light-ов, я не нашёл. Везде хоть один да есть (в модельках из одного полигона, типа карточки под пятно крови, бывает один light).
В общем, непонятно, что это и можно ли на это забить (записывать ноль light-ов). Оно проявляет себя как-нибудь в дромеде?

Оффлайн UL

  • Мастер Теней
  • Сообщений: 3416
  • Lord Vivek, Indigriss13, Utgard-Loki, Logan
    • Omikron Game
Вопросы про формат .bin
« Ответ #23 : 03 Июля 2013 20:50:43 »
Попробую предположить, потому что, в каком-то движке видел подобное, там такой параметр отвечает за интенсивность освещенности поверхности от полностью черной до "пересвеченной" xyz указывало затухание света в плоскости и направление. То есть если будет ноль это будет либо полностью черный либо полностью прозрачный (трюк вроде такое был из-за которого я и полез в такие дебри).
Ничто не имеет значения, только цель.

Оффлайн nemyax

  • Мастер Теней
  • Сообщений: 4186
  • Нёмыч
Вопросы про формат .bin
« Ответ #24 : 04 Июля 2013 01:10:06 »
Всё может быть. Надо бы послушать пользователей дромеда.

Оффлайн Zontik

  • Призрак
  • Сообщений: 14285
    • Тёмное место
Вопросы про формат .bin
« Ответ #25 : 04 Июля 2013 09:26:15 »
Ни один пользователь Дромеда никогда не имел с этим дела. Параметр, который не имеет возможностей настройки, обычно лишен практического значения.
Поэтому сочувствую, но помощи здесь не будет. Возможно, R Soul с TTLG случайно что-то об этом знает - он хорошо разбирается в 3D и мог интересоваться просто из теоретических соображений. Больше, пожалуй, мне некого заподозрить в связях с light.
Дайте глазам отдохнуть! Тёмное место

Оффлайн UL

  • Мастер Теней
  • Сообщений: 3416
  • Lord Vivek, Indigriss13, Utgard-Loki, Logan
    • Omikron Game
Вопросы про формат .bin
« Ответ #26 : 04 Июля 2013 14:32:10 »
А че если просто тупо попробовать в бинарнике подменить значение флага и сделать скриншоты в гэйммоде для разных значений и сравнить?
Ничто не имеет значения, только цель.

Оффлайн nemyax

  • Мастер Теней
  • Сообщений: 4186
  • Нёмыч
Вопросы про формат .bin
« Ответ #27 : 04 Июля 2013 15:14:40 »
А че если просто тупо попробовать в бинарнике подменить значение флага и сделать скриншоты в гэйммоде для разных значений и сравнить?
Это можно, но формат хранения хитровые нетривиальный: в 4 байта с потерями запхнуто три числа с плавающей запятой. То есть перед заменой надо ещё правильно упаковать, и неизвестно, насколько ((short)((norm>>16)&0xFFC0))/16384.0 соответствует истине.

Оффлайн nemyax

  • Мастер Теней
  • Сообщений: 4186
  • Нёмыч
Вопросы про формат .bin
« Ответ #28 : 14 Августа 2013 16:39:00 »
Вот ещё пара вопросов:
  • Формат определяет параметр "радиус" для описанной вокруг модели сферы. Этот параметр можно при необходимости перебить в редакторе?
  • Текстуру с каким именем имеет смысл делать дефолтной, если для объекта не определена никакая? Есть что-нибудь типа "хорхе", доступное в любой из даркошных игр?

Оффлайн Zontik

  • Призрак
  • Сообщений: 14285
    • Тёмное место
Вопросы про формат .bin
« Ответ #29 : 15 Августа 2013 10:14:20 »
Модель в редакторе может вообще не быть сферой. В этом случае размеры перебиваются легко. Если все-таки сфера - тоже, кажется, перебиваются, хотя не уверен, что так же гладко. Какие-то они, эти сферы, не очевидные.
Одной какой-то дефолтной текстуры нет, как на брашах. Зато есть куча "стоковых" текстур, любую из них можно использовать - она гарантированно отобразится правильно в любой игре (если, конечно, игрок не устанавливал всякие там паки-улучшители, подменяющие оригинал). Полный список - в RES\OBJ.CRF (в подпапках TXT и TXT16; большинство текстур из папки TXT доступно и в Thief 1).
Но я не очень понимаю, какой смысл в этом вопросе. Средствами редактора ведь невозможно заменить текстуру на объекте. Есть, правда, одно исключение - специальная текстура "под замену", в оригинале она выглядит как пурпурный фон с большими белыми цифрами. Имя не помню, и вообще уже несколько лет как ею не пользуюсь - неудобно. Гибкости никакой.
Дайте глазам отдохнуть! Тёмное место