Формат файлов *.dm — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Pavel (обсуждение | вклад) |
Pavel (обсуждение | вклад) |
||
(не показаны 7 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
+ | Перед прочтением данной статьи, прочтите эту статью: <br>[[Бинарные файлы]] | ||
+ | |||
== Описание == | == Описание == | ||
− | Файлы формата dm (Detail Mesh) - это трёхмерные модели для эффектов погоды. | + | Файлы формата *.dm (Detail Mesh) - это трёхмерные модели для эффектов погоды и для детальных объектов уровня. |
− | К ним относятся капли дождя | + | |
− | + | К ним относятся капли дождя, вспышки молний (папка meshes\dm). | |
+ | В файлах level.details в этом формате хранятся трава, листья, гайки, болты и т. д. | ||
== Структура файла == | == Структура файла == | ||
Строка 30: | Строка 33: | ||
== Описание структуры == | == Описание структуры == | ||
− | |||
− | |||
{| class="standard" | {| class="standard" | ||
|- | |- | ||
− | !Данные | + | !Данные||Тип |
|- | |- | ||
− | |имя шейдера|| | + | |имя шейдера||s |
|} | |} | ||
− | + | Строка, которая указывает имя шейдера из файла shaders.xr | |
− | + | ||
+ | Пример: effects\lightning0x00 | ||
+ | |||
{| class="standard" | {| class="standard" | ||
|- | |- | ||
− | !Данные | + | !Данные||Тип |
|- | |- | ||
− | |имя текстуры|| | + | |имя текстуры||s |
|} | |} | ||
− | + | Строка, которая указывает путь и имя текстуры. | |
+ | |||
+ | Пример: fx\fx_rainsplash10x00 | ||
+ | |||
{| class="standard" | {| class="standard" | ||
|- | |- | ||
− | !Данные | + | !Данные||Тип |
|- | |- | ||
− | |флаги|| | + | |флаги||I |
|} | |} | ||
− | + | Это опции. | |
+ | |||
+ | Используется в файле level.details. | ||
+ | |||
+ | Если 0x0, то меши растительности колыхаются от ветра (кусты), а если 0x1, то неподвижны (листья). | ||
+ | |||
+ | В LE эти опции находятся в Detail Objects > Detail List > No Waving | ||
+ | |||
{| class="standard" | {| class="standard" | ||
|- | |- | ||
− | !Данные | + | !Данные||Тип |
|- | |- | ||
− | |минимальный размер|| | + | |минимальный размер||f |
|} | |} | ||
− | + | Минимальный размер модели. | |
+ | |||
+ | Эти значения используются в файлах level.details | ||
+ | |||
{| class="standard" | {| class="standard" | ||
|- | |- | ||
− | !Данные | + | !Данные||Тип |
|- | |- | ||
− | |максимальный размер|| | + | |максимальный размер||f |
|} | |} | ||
− | + | Максимальный размер модели. | |
+ | |||
{| class="standard" | {| class="standard" | ||
|- | |- | ||
− | !Данные | + | !Данные||Тип |
|- | |- | ||
− | |количество вершин|| | + | |количество вершин||I |
|} | |} | ||
− | + | Количество вершин в меше. | |
+ | |||
{| class="standard" | {| class="standard" | ||
|- | |- | ||
− | !Данные | + | !Данные||Тип |
|- | |- | ||
− | |количество индексов|| | + | |количество индексов||I |
|} | |} | ||
− | + | Количество индексов по которым строятся треугольники. | |
+ | |||
+ | === Вершины === | ||
+ | |||
+ | Вершины хранятся последовательно. | ||
+ | |||
+ | Структура одной вершины: | ||
{| class="standard" | {| class="standard" | ||
|- | |- | ||
− | !Данные | + | !Данные||Тип |
− | + | ||
− | + | ||
|- | |- | ||
− | | | + | |3D координата x||f |
|- | |- | ||
− | | | + | |3D координата y||f |
|- | |- | ||
− | | | + | |3D координата z||f |
|- | |- | ||
− | | | + | |текстурная координата u||f |
|- | |- | ||
− | |текстурная координата | + | |текстурная координата v||f |
|- | |- | ||
− | |||
− | |||
− | |||
|} | |} | ||
− | Одна вершина | + | |
+ | На вершины накладываются ограничения: | ||
+ | |||
+ | 1. Одна вершина может иметь только одну текстурную координату. | ||
+ | |||
+ | При сохранении модели в *.dm, вершина, имеющая две (и более) текстурных координат, преобразуются в две (и более) вершины. | ||
+ | |||
+ | 2. Их количество должно быть не больше 65536, так как их индексы в треугольниках хранятся в 2 байтах. | ||
+ | |||
+ | === Индексы === | ||
+ | Индексы вершин по которым образуются треугольники. | ||
+ | |||
+ | Индексы хранятся последовательно. | ||
+ | |||
+ | Структура индекса: | ||
+ | |||
{| class="standard" | {| class="standard" | ||
|- | |- | ||
− | !Данные | + | !Данные||Тип |
|- | |- | ||
− | | | + | |индекс вершины||H |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
− | |||
== Ссылки == | == Ссылки == | ||
Утилиты так или иначе связанные с импортом\экспортом dm: | Утилиты так или иначе связанные с импортом\экспортом dm: | ||
− | *[https://github.com/ | + | *[https://github.com/igelbox/blender-xray Плагин blender-xray] от '''igelbox''' |
[[Участник: Pavel]] | [[Участник: Pavel]] | ||
[[Категория:Форматы файлов]] | [[Категория:Форматы файлов]] |
Текущая версия на 12:42, 4 марта 2018
Перед прочтением данной статьи, прочтите эту статью:
Бинарные файлы
Описание
Файлы формата *.dm (Detail Mesh) - это трёхмерные модели для эффектов погоды и для детальных объектов уровня.
К ним относятся капли дождя, вспышки молний (папка meshes\dm).
В файлах level.details в этом формате хранятся трава, листья, гайки, болты и т. д.
Структура файла
Данные |
---|
имя шейдера |
имя текстуры |
флаги |
минимальный размер |
максимальный размер |
количество вершин |
количество индексов |
вершины |
индексы |
Описание структуры
Данные | Тип |
---|---|
имя шейдера | s |
Строка, которая указывает имя шейдера из файла shaders.xr
Пример: effects\lightning0x00
Данные | Тип |
---|---|
имя текстуры | s |
Строка, которая указывает путь и имя текстуры.
Пример: fx\fx_rainsplash10x00
Данные | Тип |
---|---|
флаги | I |
Это опции.
Используется в файле level.details.
Если 0x0, то меши растительности колыхаются от ветра (кусты), а если 0x1, то неподвижны (листья).
В LE эти опции находятся в Detail Objects > Detail List > No Waving
Данные | Тип |
---|---|
минимальный размер | f |
Минимальный размер модели.
Эти значения используются в файлах level.details
Данные | Тип |
---|---|
максимальный размер | f |
Максимальный размер модели.
Данные | Тип |
---|---|
количество вершин | I |
Количество вершин в меше.
Данные | Тип |
---|---|
количество индексов | I |
Количество индексов по которым строятся треугольники.
Вершины
Вершины хранятся последовательно.
Структура одной вершины:
Данные | Тип |
---|---|
3D координата x | f |
3D координата y | f |
3D координата z | f |
текстурная координата u | f |
текстурная координата v | f |
На вершины накладываются ограничения:
1. Одна вершина может иметь только одну текстурную координату.
При сохранении модели в *.dm, вершина, имеющая две (и более) текстурных координат, преобразуются в две (и более) вершины.
2. Их количество должно быть не больше 65536, так как их индексы в треугольниках хранятся в 2 байтах.
Индексы
Индексы вершин по которым образуются треугольники.
Индексы хранятся последовательно.
Структура индекса:
Данные | Тип |
---|---|
индекс вершины | H |
Ссылки
Утилиты так или иначе связанные с импортом\экспортом dm:
- Плагин blender-xray от igelbox