Level.details — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Pavel (обсуждение | вклад) |
Pavel (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
Содержит информацию о детальных объектах (трава, гайки и сухие листья). | Содержит информацию о детальных объектах (трава, гайки и сухие листья). | ||
− | Состоит из трёх RIFF-секций: | + | Состоит из трёх RIFF-секций (блоков): |
− | + | {| class="standard" | |
− | 0x0 заголовок | + | |- |
− | + | !Идентификатор блока||Размер (в байтах)||Описание | |
− | 0x1 модели объектов (в формате .dm) | + | |- |
− | + | |0x0||24||заголовок | |
− | 0x2 таблица ячеек 2x2 метра, задающяя плотность и видовое разнообразие объектов на карте | + | |- |
+ | |0x1||-||модели объектов (в формате .dm) | ||
+ | |- | ||
+ | |0x2||-||таблица ячеек 2x2 метра, задающяя плотность и видовое разнообразие объектов на карте | ||
+ | |- | ||
+ | |} | ||
== Версии формата == | == Версии формата == |
Версия 10:48, 18 декабря 2016
Содержание
Общее описание файла
Содержит информацию о детальных объектах (трава, гайки и сухие листья).
Состоит из трёх RIFF-секций (блоков):
Идентификатор блока | Размер (в байтах) | Описание |
---|---|---|
0x0 | 24 | заголовок |
0x1 | - | модели объектов (в формате .dm) |
0x2 | - | таблица ячеек 2x2 метра, задающяя плотность и видовое разнообразие объектов на карте |
Версии формата
2 - билды 1096-1558
3 - от билда 1569 до "Зова Припяти"
Версия 3 отличается от 2 тем, как хранится таблица ячеек растительности. В 3 версии они сохраняются в более компактном виде из-за чего размер файла level.details меньше. Коэфициенты освещения в версии 3: тени от солнца, hemi, свет (Light в Level Editor). А в версии 2 коэффициент освещения общий (нет разделения на тени, hemi, свет). Блоки 0x0, 0x1 одинаковы в обеих версиях, но порядок расположения в файле у них разный.
Очерёдность блоков в версии 3: 0x1, 0x2, 0x0
Очерёдность блоков в версии 2: 0x0, 0x1, 0x2
Типы данных
Чтобы статья была более компактной, я введу обозначения данных:
Обозначение | Размер (в байтах) | Тип | Диапазон |
---|---|---|---|
I | 4 | целое число | 0..4294967295 |
i | 4 | целое число | -2147483648..2147483647 |
H | 2 | целое число | 0..65535 |
Блоки
Блок 0x0 (заголовок)
I версия формата
I количество dm моделей в файле
i смещение ячеек таблицы по оси X
i смещение ячеек таблицы по оси Z
I количество ячеек таблицы по оси X
I количество ячеек таблицы по оси Z
Блок 0x1 (меши)
I идентификатор меша
I размер данных меша
данные меша
Данные меша
Меши хранятся в формате *.dm
Описание формата dm:
Формат файлов *.dm
Блок 0x2 (слоты/таблица ячеек)
Версия 3
Один слот хранится в 16 байтах, которые указывают:
Базовую высоту слота (это значение нужно умножить на 0.2 метра), хранится в 12 битах
Дополнительную высоту слота (это значение нужно умножить на 0.1 метра), хранится в 8 битах
Четыре идентификатора меша растительности (по 6 бит каждый)
Тень от солнца (4 бита)
Hemi освещение (4 бита)
Освещение RGB (каждая составляющая цвета по 4 бита)
(?) палитра (64 бита)
На положение слотов по оси Y накладываются ограничения. Нижняя граница равна -200 метров. А допустимый диапазон: -200..644.5 (0.2*4095 + 0.1*255 - 200)
Абсолютная высота слота (т.е. положение по оси Y) равна: баз.*0.2 + доп.*0.1 - 200