Level.details — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Pavel (обсуждение | вклад) |
Pavel (обсуждение | вклад) (→Данные меша) |
||
Строка 61: | Строка 61: | ||
данные меша | данные меша | ||
− | == Данные меша == | + | ==== Данные меша ==== |
Меши хранятся в формате *.dm | Меши хранятся в формате *.dm |
Версия 10:34, 18 декабря 2016
Содержание
Общее описание файла
Содержит информацию о детальных объектах (трава, гайки и сухие листья).
Состоит из трёх RIFF-секций:
0x0 заголовок
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
Информация о формате взята из xray_re-tools-src.