Формат файлов *.dm — S.T.A.L.K.E.R. Inside Wiki

Формат файлов *.dm

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

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

Описание

Файлы формата dm (Detail Model files) - это трёхмерные модели для эффектов погоды. К ним относятся капли дождя и вспышки молний. Находятся в meshes\dm\. Так же в файлах level.details в этом формате хранятся меши растительности. Этот формат наиболее простой среди остальных форматов 3д моделей сталкера.


Структура файла

Данные
имя шейдера
имя текстуры
флаги
минимальный размер
максимальный размер
количество вершин
количество индексов
вершины
индексы

Описание структуры

В таблицах размер указан в байтах.

Данные Размер Тип
имя шейдера длина строки + 1 строка

строка, которая в конце имеет нулевой байт (0x00). Этот байт является разделителем. То есть говорит о том, что данная строка закончилась. Пример: effects\lightning0x00

Данные Размер Тип
имя текстуры длина строки + 1 строка

аналогично имени шейдера

Данные Размер Тип
флаги 4 ?

После шейдера и текстуры находятся четыре байта. Это опции. Используется в файле level.details. Если 0x0000, то меши растительности неподвижны (кусты), а если 0x0001, то меши динамичны и поддаются физике (листья).

Данные Размер Тип
минимальный размер 4 дробное

минимальный размер модели. Эти значения используются в файлах level.details

Данные Размер Тип
максимальный размер 4 дробное

максимальный размер модели.

Данные Размер Тип
количество вершин 4 целое

количество вершин в меше

Данные Размер Тип
количество индексов 4 целое

количество индексов по которым строятся треугольники

Данные Размер Тип
вершины:
... ... ...
3д координата x 4 дробное
3д координата y 4 дробное
3д координата z 4 дробное
текстурная координата x 4 дробное
текстурная координата y 4 дробное
... ... ...

Одна вершина хранится в 20 байтах. Эта структура повторяется для всех вершин. Поэтому суммарный размер вершин = (20*количество вершин)

Данные Размер Тип
индексы:
... ... ...
индекс вершины 2 целое
... ... ...

Индексы вершин по которым образуются треугольники. Суммарный размер индексов равен 2*количество индексов.

Автор статьи: Pavel_Blend

Использованы материалы из xray_re-tools-src

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