Обсуждение участника:Excid — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Excid (обсуждение | вклад) |
Excid (обсуждение | вклад) |
||
Строка 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
Содержание
- 1 О формате
- 2 Описание структуры
- 3 Структура
- 4 Файл (0x7777)
- 4.1 Неизвестные данные (0x0900)
- 4.2 Пользовательские информация — User Data (0x0912)
- 4.3 Уровень детализации — LOD (0x0925)
- 4.4 Тип объекта — Object Type (0x0903)
- 4.5 Данные о геометрии — Geometry (0x0910)
- 4.5.1 Неизвестные данные (0x1000)
- 4.5.2 Ограничивающий параллелепипед — Bounding Box (0x1004)
- 4.5.3 Неизвестные данные (0x1002)
- 4.5.4 Неизвестные данные (0x1010)
- 4.5.5 Вершины — Vertices (0x1005)
- 4.5.6 Грани — Faces (0x1006)
- 4.5.7 Группы сглаживания — Smoothing Groups (0x1013)
- 4.5.8 Словарь текстурных координат — UVs (0x1008)
О формате
Формат *.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 | Индекс в таблице, определяемой предыдущим значением. |
Допишу потом