Level.details — S.T.A.L.K.E.R. Inside Wiki

Level.details

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

Общее описание файла

Содержит информацию о детальных объектах (трава, гайки и сухие листья).

Состоит из трёх 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

Участник: Pavel

Другие места
LANGUAGE