Level.details — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Pavel (обсуждение | вклад) (→Версии формата) |
Pavel (обсуждение | вклад) (→Версии формата) |
||
Строка 48: | Строка 48: | ||
Очерёдность блоков в версии 2: 0x0, 0x1, 0x2 | Очерёдность блоков в версии 2: 0x0, 0x1, 0x2 | ||
+ | |||
+ | |||
+ | При выполнении Build уровня (в LevelEditor), создаётся файл build.details. | ||
+ | |||
+ | Структура этого файла идентична level.details, за исключением того, что в нём не просчитаны коэффициенты освещения (их значения равны 0). | ||
== Блоки == | == Блоки == |
Версия 10:52, 10 января 2017
Перед прочтением данной статьи, прочтите эту статью:
Бинарные файлы
Содержание
Общее описание файла
Содержит информацию о детальных объектах (трава, гайки и сухие листья).
Состоит из трёх RIFF-секций (блоков):
Идентификатор блока | Размер (в байтах) | Описание |
---|---|---|
0x0 | 24 | заголовок |
0x1 | - | модели объектов (в формате .dm) |
0x2 | - | таблица ячеек 2x2 метра, задающяя плотность и видовое разнообразие объектов на карте |
Одна ячейка (слот) представляет из себя параллелепипед.
Габариты всех ячеек по осям X и Z одинаковы и равны 2 метра.
Высота слота (габариты параллелепипеда по оси Y) у всех слотов индивидуальна.
Версии формата
2 - билды 1096-1558
3 - от билда 1569 до "Зова Припяти"
Версия 3 отличается от 2 тем, как хранится таблица ячеек растительности.
В 3 версии они сохраняются в более компактном виде из-за чего размер файла level.details меньше.
Коэффициенты освещения в версии 3: тени от солнца, hemi, свет (Light в Level Editor).
А в версии 2 коэффициент освещения общий (нет разделения на тени, hemi, свет).
Структура блоков 0x0, 0x1 одинакова в обеих версиях.
Порядок расположения блоков в версии 2 и 3 разный.
Очерёдность блоков в версии 3: 0x1, 0x2, 0x0
Очерёдность блоков в версии 2: 0x0, 0x1, 0x2
При выполнении Build уровня (в LevelEditor), создаётся файл build.details.
Структура этого файла идентична level.details, за исключением того, что в нём не просчитаны коэффициенты освещения (их значения равны 0).
Блоки
Блок 0x0 (заголовок)
Тип | Описание |
---|---|
I | версия формата |
I | количество dm моделей в файле |
i | смещение ячеек таблицы по оси X |
i | смещение ячеек таблицы по оси Z |
I | количество ячеек таблицы по оси X |
I | количество ячеек таблицы по оси Z |
Блок 0x1 (меши)
Блок состоит из вложенных блоков.
Идентификатор вложенного блока является индексом меша детального объекта.
Данные вложенных блоков - это меш в формате dm.
Описание формата dm:
Формат файлов *.dm
Блок 0x2 (слоты/таблица ячеек)
Версия 3
Блок хранит ячейки (слоты).
Слоты в этом блоке записаны поочерёдно.
К каждому слоту может быть привязано до четырёх мешей детальных объектов.
Индекс меша детального объекта может быть в пределах [0 .. 62] (63 - это отсутствие меша).
Данные одного слота хранятся в 16 байтах (128 битах), которые хранят в себе следующее:
Размер (в битах) | Описание |
---|---|
12 | Координата нижней границы слота по оси Y (это значение нужно умножить на 0.2 метра) |
8 | Высота слота (это значение нужно умножить на 0.1 метра) |
6 | Идентификатор первого меша растительности |
6 | Идентификатор второго меша растительности |
6 | Идентификатор третьего меша растительности |
6 | Идентификатор четвёртого меша растительности |
4 | Тень от солнца |
4 | Hemi освещение |
4 | Красная составляющая статических источников света |
4 | Зелёная составляющая статических источников света |
4 | Синяя составляющая статических источников света |
4 | Плотность первого меша (?) |
4 | Плотность первого меша (?) |
4 | Плотность первого меша (?) |
4 | Плотность первого меша (?) |
4 | Плотность второго меша (?) |
4 | Плотность второго меша (?) |
4 | Плотность второго меша (?) |
4 | Плотность второго меша (?) |
4 | Плотность третьего меша (?) |
4 | Плотность третьего меша (?) |
4 | Плотность третьего меша (?) |
4 | Плотность третьего меша (?) |
4 | Плотность четвёртого меша (?) |
4 | Плотность четвёртого меша (?) |
4 | Плотность четвёртого меша (?) |
4 | Плотность четвёртого меша (?) |
На позицию слотов по оси Y накладываются ограничения.
Нижняя граница равна -200 метров.
А допустимый диапазон: от -200 метров до 619 метров (0.2 * 4095 - 200).
Максимальная высота слота (параллелепипеда) равна: 25.5 (0.1 * 255).
Верхняя граница слота равна: нижняя граница + высота слота.
Ссылки
Утилиты так или иначе связанные с импортом\экспортом details:
- Blender X-Ray Engine Tools от igelbox