Загальний опис файлу
Містить інформацію про детальні об'єкти (трава, гайки та сухе листя).
Складається із трьох 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.
Блок 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 | Щільність четвертого міша у правому задньому кутку слота |
Як видно з таблиці, кожен слот має 16 значень густини.
Кожен із чотирьох мішей має чотири значення щільності (для чотирьох кутів слота).
Значення густини всередині слота інтерполуються від значень густини кутів слота.
Позначимо щільності так:
a0 - густина для лівого переднього кута слота
a1 - густина для правого переднього кута слота
a2 - густина для лівого заднього кута слота
a3 - густина для правого заднього кута слота
На позицію слотів по осі Y накладаються обмеження.
Нижня межа дорівнює -200 метрів.
А допустимий діапазон: від -200 метрів до 619 метрів (0.2*4095 – 200).
Максимальна висота слота (паралелепіпеда) дорівнює: 25.5 (0.1 * 255).
Верхня межа слота дорівнює: нижня межа + висота слота.
Версія 2
Дані одного слота у версії 2 зберігаються в 22 байтах, які містять наступне:
Тип | Опис |
---|---|
f | Координата нижньої межі слота по осі Y |
f | Координата верхньої межі слота по осі Y |
B | Ідентифікатор першого міша рослинності |
H | Щільність першого міша рослинності |
B | Ідентифікатор другого міша рослинності |
H | Щільність другого міша рослинності |
B | Ідентифікатор третього міша рослинності |
H | Щільність третього міша рослинності |
B | Ідентифікатор четвертого міша рослинності |
H | Щільність четвертого міша рослинності |
H | Освітлення слота |
Щільність являє собою таке:
Розмір у бітах | Опис |
---|---|
4 | Щільність у лівому передньому куті слота |
4 | Щільність у правому передньому куті слота |
4 | Щільність у лівому задньому кутку слота |
4 | Щільність у правому задньому кутку слота |
Висвітлення слота являє собою таке:
Розмір у бітах | Опис |
---|---|
4 | Освітленість у лівому передньому кутку слота |
4 | Освітленість у правому передньому кутку слота |
4 | Освітленість у лівому задньому кутку слота |
4 | Освітленість у правому задньому кутку слота |