Level.details — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Pavel (обсуждение | вклад) |
Pavel (обсуждение | вклад) (→Блок 0x0 (заголовок)) |
||
Строка 47: | Строка 47: | ||
=== Блок 0x0 (заголовок) === | === Блок 0x0 (заголовок) === | ||
− | + | {| class="standard" | |
− | I версия формата | + | |- |
− | + | !Тип||Описание | |
− | I количество dm моделей в файле | + | |- |
− | + | |I||версия формата | |
− | i смещение ячеек таблицы по оси X | + | |- |
− | + | |I||количество dm моделей в файле | |
− | i смещение ячеек таблицы по оси Z | + | |- |
− | + | |i||смещение ячеек таблицы по оси X | |
− | I количество ячеек таблицы по оси X | + | |- |
− | + | |i||смещение ячеек таблицы по оси Z | |
− | I количество ячеек таблицы по оси Z | + | |- |
+ | |I||количество ячеек таблицы по оси X | ||
+ | |- | ||
+ | |I||количество ячеек таблицы по оси Z | ||
+ | |- | ||
+ | |} | ||
=== Блок 0x1 (меши) === | === Блок 0x1 (меши) === |
Версия 10:51, 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