💨 Обзор
Материалы хранятся либо в отдельном файле (.mat), либо встроены в файлы модели (.3db, .cmp, .dfm и т. д.).
flowchart LR \ --> A[Texture library] A --> B[texture] \ --> M[Material library] M --> M1[material] M1 --> DT(Dt_name) M1 --> T(Type) DT -.-> B
Некоторые ресурсы не могут иметь ссылки на внешние файлы с материалами и требуют встраивания материалов непосредственно в файл модели, например, звездные сферы, реквизит для кат-сцен и деформируемые модели.
💢 Типы материалов
Тип | Альфа | Описание |
---|---|---|
DcDt | No | Диффузный цвет + диффузная текстура. |
DcDtTwo | No | Двусторонний вариант DcDt. |
DcDtEc | No | Диффузный цвет + Диффузная текстура + Цвет излучения. |
DcDtEcTwo | No | Двусторонний вариант DcDtEc. |
DcDtOcOt | Yes | Рассеянный цвет + Рассеянная текстура + Цвет непрозрачности + Текстура непрозрачности. |
DcDtOcOtTwo | Yes | Двусторонний вариант DcDtOcOt. |
DcDtEcOcOt | Yes | Диффузный цвет + Диффузная текстура + Цвет излучения + Цвет непрозрачности + Текстура непрозрачности. |
DcDtEcOcOtTwo | Yes | Двусторонний вариант DcDtEcOcOt. |
DcDtEt | No | Диффузный цвет + Диффузная текстура + Текстура излучения. |
EcEt | No | Цвет излучения + текстура излучения. |
Nebula | Yes | Диффузная текстура, окрашенная цветом вершины с смешением (ADD, SRCALPHA, ONE). |
NebulaTwo | Yes | Двусторонняя версия Nebula. |
BtDetailMapMaterial | No | Диффузная текстура с детальной текстурой, наложенной в режиме наложения. Детальная текстура использует второй набор UV-текстур. |
BtDetailMapMaterialTwo | No | Двусторонний вариант DetailMaterial. |
NomadMaterial | Yes | Специальный материал для кораблей кочевников. |
NomadMaterialNoBendy | Yes | Ditto. |
GlassMaterial | Yes | Прозрачный материал, используемый для кабины. |
GFGlassMaterial | Yes | Ditto. |
HighGlassMaterial | Yes | Ditto. |
PlanetWaterMaterial | Yes | Материал с режимом наложения «Умножение». |
AtmosphereMaterial | Yes | |
ExclusionZoneMaterial | Yes | Материал для оболочек зоны исключения. |
HUDIconMaterial | Yes | Материал для значков HUD. |
HUDAnimMaterial | Yes | Анимационный материал для HUD. Анимация включается в настройках. |
NullMaterial | No | Резервный материал. |
DetailMapMaterial | No | |
DetailMap2Dm1Msk2PassMaterial | No | |
IllumDetailMapMaterial | No | |
Masked2DetailMapMaterial | No |
NomadMaterial
иNomadMaterialNoBendy
не отображаются, когда для объекта используется карта окружения.- ❗ Тип материала можно переопределить, сопоставив регулярное выражение в [MaterialMap] файла dacom.ini.
Когда модель использует как прозрачные, так и непрозрачные (непрозрачные) материалы, она должна быть составлена из нескольких частей, и любые группы сеток, использующие прозрачные материалы, должны храниться в частях, отдельных от групп сеток, использующих непрозрачные материалы, т. е. прозрачное стекло кабины должно быть отделено от корпуса, к которому оно прикреплено. Группы сеток с непрозрачными материалами рисуются спереди назад, после чего группы сеток с прозрачными материалами рисуются сзади вперед с отключенной записью буфера глубины.
🔭 Свойства материалов
Имя | Тип | Описание |
---|---|---|
Ac | float[3] | Цвет окружающей среды. |
Dc | float[3] | Рассеянный цвет. |
Oc | float | Цвет непрозрачности (альфа). |
Ec | float[3] | Цвет излучения. |
Sc | float[3] | Зеркальный цвет. |
Sp | float | Зеркальная сила. |
Dt_name | string | Название диффузной текстуры. |
Dt_flags | uint32 | Флаги обертывания диффузной текстуры. |
Et_name | string | Имя текстуры излучения. |
Et_flags | uint32 | Флаги обёртки текстуры излучения. |
Bt_name | string | Имя текстуры деталей. |
Bt_flags | uint32 | Флаги обёртки текстуры деталей. |
Nt_name | string | Имя текстуры Nomad. |
Nt_flags | uint32 | Флаги обёртки текстуры Nomad. |
Alpha | float | Уровень прозрачности. |
Fade | float | Коэффициент затухания при крутом угле обзора. |
Scale | float | Масштаб смещения вершин? |
Dm_name | string | Имя текстуры диффузной маски. |
Dm_flags | uint32 | Флаги обёртки текстуры диффузной маски. |
TileRate | float | Множитель тайлинга диффузной маски. |
Dm0_name | string | Имя текстуры диффузной маски 0. |
Dm0_flags | uint32 | Флаги обёртки текстуры диффузной маски 0. |
TileRate0 | float | Множитель тайлинга диффузной маски 0. |
Dm1_name | string | Имя текстуры диффузной маски 1. |
Dm1_flags | uint32 | Флаги обёртки текстуры диффузной маски 1. |
TileRate1 | float | Множитель тайлинга диффузной маски 1. |
flip u | uint32 | Отразить текстуру по горизонтали. |
flip v | uint32 | Отразить текстуру по вертикали. |
Ac
используется вAtmosphereMaterial
, но может применяться ко многим другим материалам для переопределения фонового цвета сцены.Oc
используется в любом прозрачном материале.Ec
используется вDcDtEc
,DcDtEcOcOt
,EcEt
.- ❗ Параметры
«Ot_name»
и«Ot_flags»
отсутствуют, поскольку прозрачность берётся из альфа-канала форматов текстур, которые поддерживают прозрачность. Et_name
иEt_flags
используются вDcDtEt
иEcEt
.Bt_name
иBt_flags
используются вBtDetailMapMaterial
иBtDetailMapMaterialTwo
.Nt_name
иNt_flags
используются вNomadMaterial
иNomadMaterialNoBendy
.Alpha
,Fade
иScale
используются вAtmosphereMaterial
.Dm_name
,Dm_flags
иTileRate
используются вDetailMapMaterial
.Dm0_name
,Dm0_flags
иTileRate0
используются вDetailMap2Dm1Msk2PassMaterial
,IllumDetailMapMaterial
иMasked2DetailMapMaterial
.Dm1_name
,Dm1_flags
иTileRate1
используются вDetailMap2Dm1Msk2PassMaterial
,IllumDetailMapMaterial
иMasked2DetailMapMaterial
.
🔭 Материальная анимация
stateDiagram-v2 direction LR Library: Material library [*] --> Library Library --> MaterialAnim MaterialAnim --> material_name material_name --> MACount material_name --> MADeltas material_name --> MAKeys material_name --> MAFlags
Анимация материала хранится в файле модели и допускает простое смещение UV и масштабирование циклической анимации по ключевым кадрам.
Имя | Тип | Описание |
---|---|---|
MACount | uint32 | Количество ключевых кадров MADeltas. |
MADeltas | varying | Ключевые кадры смещения UV и масштабирования скорости. |
MAKeys | varying | Ключевые кадры смещения и масштабирования UV. |
MAFlags | uint32 | Флаги анимации. |
Каждый ключевой кадр в MADeltas
:
Имя | Тип | Описание |
---|---|---|
time | float | Время ключевого кадра. |
uOffsetSpeed | float | Скорость смещения тайлинга U. |
vOffsetSpeed | float | Скорость смещения тайлинга V. |
uScaleSpeed | float | Скорость масштабирования мозаики U. |
vScaleSpeed | float | Скорость масштабирования мозаики V. |
Каждый ключевой кадр в MAKeys
:
Имя | Тип | Описание |
---|---|---|
uOffset | float | Начальное смещение U. |
vOffset | float | Начальное смещение V. |
uScale | float | Начальная шкала U. |
vScale | float | Начальная шкала V. |
- Количество ключевых кадров
MAKeys
будет на один меньшеMACount
. Первый ключевой кадр — это неявное состояние исходных значений UV.