Формат файлов *.dm — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Pavel (обсуждение | вклад) |
Pavel (обсуждение | вклад) |
||
Строка 37: | Строка 37: | ||
!Данные||Размер||Тип | !Данные||Размер||Тип | ||
|- | |- | ||
− | |имя шейдера|| | + | |имя шейдера||длина строки + 1||строка |
|} | |} | ||
строка, которая в конце имеет нулевой байт (0x00). Этот байт является разделителем. | строка, которая в конце имеет нулевой байт (0x00). Этот байт является разделителем. | ||
Строка 45: | Строка 45: | ||
!Данные||Размер||Тип | !Данные||Размер||Тип | ||
|- | |- | ||
− | |имя текстуры|| | + | |имя текстуры||длина строки + 1||строка |
|} | |} | ||
аналогично имени шейдера | аналогично имени шейдера | ||
Строка 88: | Строка 88: | ||
!Данные||Размер||Тип | !Данные||Размер||Тип | ||
|- | |- | ||
− | | | + | |вершины:|| || |
+ | |- | ||
+ | |...||...||... | ||
|- | |- | ||
|3д координата x||4||дробное | |3д координата x||4||дробное | ||
Строка 107: | Строка 109: | ||
!Данные||Размер||Тип | !Данные||Размер||Тип | ||
|- | |- | ||
− | |индексы|| | + | |индексы:|| || |
+ | |- | ||
+ | |...||...||... | ||
|- | |- | ||
|индекс вершины||2||целое | |индекс вершины||2||целое | ||
Строка 114: | Строка 118: | ||
|} | |} | ||
− | Индексы вершин по которым образуются треугольники. | + | Индексы вершин по которым образуются треугольники. Суммарный размер индексов равен 2*количество индексов. |
==== Автор статьи: Pavel_Blend ==== | ==== Автор статьи: Pavel_Blend ==== | ||
==== Использованы материалы из xray_re-tools-src ==== | ==== Использованы материалы из xray_re-tools-src ==== | ||
[[Категория:Форматы файлов]] | [[Категория:Форматы файлов]] |
Версия 12:07, 10 июля 2014
Содержание
Описание
Файлы формата dm - это трёхмерные модели для эффектов погоды. К ним относятся капли дождя и вспышки молний. Находятся в meshes\dm\ Этот формат наиболее простой среди остальных форматов 3д моделей сталкера.
Структура файла
Данные |
---|
имя шейдера |
имя текстуры |
флаги |
минимальный размер |
максимальный размер |
количество вершин |
количество индексов |
вершины |
индексы |
Описание структуры
В таблицах размер указан в байтах.
Данные | Размер | Тип |
---|---|---|
имя шейдера | длина строки + 1 | строка |
строка, которая в конце имеет нулевой байт (0x00). Этот байт является разделителем. То есть говорит о том, что данная строка закончилась. Пример: effects\lightning0x00
Данные | Размер | Тип |
---|---|---|
имя текстуры | длина строки + 1 | строка |
аналогично имени шейдера
Данные | Размер | Тип |
---|---|---|
флаги | 4 | ? |
После шейдера и текстуры находятся четыре байта. Возможно это опции (флаги)
Данные | Размер | Тип |
---|---|---|
минимальный размер | 4 | дробное |
минимальный размер модели. Например, для капель дождя.
Данные | Размер | Тип |
---|---|---|
максимальный размер | 4 | дробное |
максимальный размер модели.
Данные | Размер | Тип |
---|---|---|
количество вершин | 4 | целое |
количество вершин в меше
Данные | Размер | Тип |
---|---|---|
количество индексов | 4 | целое |
количество индексов по которым строятся треугольники
Данные | Размер | Тип |
---|---|---|
вершины: | ||
... | ... | ... |
3д координата x | 4 | дробное |
3д координата y | 4 | дробное |
3д координата z | 4 | дробное |
текстурная координата x | 4 | дробное |
текстурная координата y | 4 | дробное |
... | ... | ... |
Одна вершина хранится в 20 байтах. Эта структура повторяется для всех вершин. Поэтому суммарный размер вершин = (20*количество вершин)
Данные | Размер | Тип |
---|---|---|
индексы: | ||
... | ... | ... |
индекс вершины | 2 | целое |
... | ... | ... |
Индексы вершин по которым образуются треугольники. Суммарный размер индексов равен 2*количество индексов.