Обсуждение участника:Excid — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Обсуждение участника:Excid — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
Строка 100: Строка 100:
 
|Неизвестно||(8)||0x00||Все нули
 
|Неизвестно||(8)||0x00||Все нули
 
|}
 
|}
 +
 +
==== Вершины — Vertices (0x1005) ====
 +
{| class="standard"
 +
|-
 +
!Название||Тип(размер)||Значение||Подробнее
 +
|-
 +
|Количество вершин n||uint(4)||||
 +
|-
 +
|Координаты||float(4)[n * 3]||||Координаты x, y, z для каждой вершины
 +
|}
 +
 +
==== Грани — Faces (0x1006) ====
 +
{| class="standard"
 +
|-
 +
!Название||Тип(размер)||Значение||Подробнее
 +
|-
 +
|Количество граней m||uint(4)||||
 +
|-
 +
|Координаты||uint(4)[m * 6]||||Троки пар индекс вершины + индекс текстурной координаты
 +
|}
 +
 +
==== Группы сглаживания — Smoothing Groups (0x1013) ====
 +
{| class="standard"
 +
|-
 +
!Название||Тип(размер)||Значение||Подробнее
 +
|-
 +
|Группы||uint(4)[m]||||32-битная маска групп сглаживания для каждой грани
 +
|}
 +
 +
==== Словарь текстурных координат — UVs (0x1008) ====
 +
Логика формирования и назначение этого и последуещего блока доконца не понятна.
 +
Предположительный вариант представлен ниже.
 +
{| class="standard"
 +
|-
 +
!Название||Тип(размер)||Значение||Подробнее
 +
|-
 +
|Количество записей k||uint(4)||||
 +
|-
 +
|Данные||(9)[k]||||Предположительная структура в следующей таблице
 +
|}
 +
 +
{| class="standard"
 +
|-
 +
!Название||Тип(размер)||Значение||Подробнее
 +
|-
 +
|Неизвестно||byte(1)||0x1||
 +
|-
 +
|Индекс таблицы текстурных координат||uint(4)||0x0 или 0x1||Возможно, только первый байт содержит эти данные,<br /> остальные выполняют другие функции (но встречались только нулевые значения)
 +
|Индекс текстурных координаты||uint(4)||0x0 или 0x1||Индекс в таблице, определяемой предыдущим значением.
 +
|}
 +
 +
 +
 +
  
 
<big>Допишу потом</big>
 
<big>Допишу потом</big>

Версия 15:46, 7 июня 2007

Формат разобрал excid

О формате

Формат *.object используется в качестве основного формата хранения моделей на этапе редактирования (включая экспорт из Maya или 3ds Max и хранение моделей до компиляции уровня)

Описание структуры

Формат бинарный. Файл состоит из вложенных друг в друга блоков. Весь файл представляет собой единый блок.

Структура блока

Блок имеет 3 обязательные части:

Часть Тип(размер) Подробнее
Идентификатор типа блока (4) 2 байта идентификатора и 2 нулевых байта
Размер блока uint(4) без учета этих частей — только то, что идет дальше
Данные (Размер блока) Данные могут быть представлены вложенными блоками

Типы данных

Особое внимание стоит обратить на то, как хранятся строки: они нуль-терминальные, то есть в конце обязательно содержат нулевой байт.

Структура

В заголовке последующих пунктов в скобках содержатся идентификаторы типа блока в шестнадцатиричной форме, при этом байты представлены в обратном порядке (то есть так, как числа задаются в исходниках), поэтому идентификатор 0x0912 в файле будет выглядеть как 09 12 00 00.

Файл (0x7777)

Неизвестные данные (0x0900)

Возможно, это версия.

Название Тип(размер) Значение Подробнее
Неизвестно (2) 0x10 0x00

Пользовательские информация — User Data (0x0912)

В редакторе Game options > User Data.

Название Тип(размер) Значение Подробнее
Данные строка Произвольная строка

Уровень детализации — LOD (0x0925)

В редакторе LOD > Reference.

Название Тип(размер) Значение Подробнее
Ссылка строка Путь к модели, содержащей следующий уровень детализации

Тип объекта — Object Type (0x0903)

В редакторе Object Type.

Название Тип(размер) Значение Подробнее
Тип (4) Значение 0x00 для статической модели (тип Static)

Данные о геометрии — Geometry (0x0910)

В редакторе Geometry.

Неизвестные данные (0x1000)

Название Тип(размер) Значение Подробнее
Неизвестно (2) 0x11 0x00

Ограничивающий параллелепипед — Bounding Box (0x1004)

В редакторе Transform > BBox Min/Max

Название Тип(размер) Значение Подробнее
Минимум float(4)[3] Минимальные значения вершин по x, y, z
Максимум float(4)[3] Максимальные значения вершин по x, y, z

Неизвестные данные (0x1002)

Название Тип(размер) Значение Подробнее
Неизвестно (1) 0x05

Неизвестные данные (0x1010)

Название Тип(размер) Значение Подробнее
Неизвестно (8) 0x00 Все нули

Вершины — Vertices (0x1005)

Название Тип(размер) Значение Подробнее
Количество вершин n uint(4)
Координаты float(4)[n * 3] Координаты x, y, z для каждой вершины

Грани — Faces (0x1006)

Название Тип(размер) Значение Подробнее
Количество граней m uint(4)
Координаты uint(4)[m * 6] Троки пар индекс вершины + индекс текстурной координаты

Группы сглаживания — Smoothing Groups (0x1013)

Название Тип(размер) Значение Подробнее
Группы uint(4)[m] 32-битная маска групп сглаживания для каждой грани

Словарь текстурных координат — UVs (0x1008)

Логика формирования и назначение этого и последуещего блока доконца не понятна. Предположительный вариант представлен ниже.

Название Тип(размер) Значение Подробнее
Количество записей k uint(4)
Данные (9)[k] Предположительная структура в следующей таблице
Название Тип(размер) Значение Подробнее
Неизвестно byte(1) 0x1
Индекс таблицы текстурных координат uint(4) 0x0 или 0x1 Возможно, только первый байт содержит эти данные,
остальные выполняют другие функции (но встречались только нулевые значения)
Индекс текстурных координаты uint(4) 0x0 или 0x1 Индекс в таблице, определяемой предыдущим значением.



Допишу потом

Другие места
LANGUAGE