Формат файлов материалов .mtl

Материал из SkyXEngine wiki
Перейти к: навигация, поиск

Файл материала - текстовый файл конфигураций с настройками. Может редактироваться вручную либо при помощи редактора материалов.

Рекомендуется ознакомится со статьей Основные понятия и состав материалов.

Правила организации

Все файлы материалов располагаются по относительному пути materials/ по принципу организации текстур, только с расширением mtl.

Каждый файл материала является текстовым и представляет из себя файл конфигураций, в каждом файле есть/должна_быть только одна секция с именем материала без расширения.

Типы настроек

Настройки материалов могут иметь следующие типы:

  • текстовый (text) - значение представлено в виде текста
  • числовой:
    • целочисленный (int)
    • число с плавающей точкой (float)
  • логический (logic) - значение должно отвечать на вопрос либо положительно (истина) либо отрицательно (ложь), может иметь следующие значения:
    • true или любое числовое значение кроме 0 - истина
    • false или 0 - ложь

Описание настроек материала

Все настройки материалов делятся на несколько разделов:

  • основные
  • физические
  • флаги
  • текстуры
  • константы

Основные настройки

shader (text) - Шейдер материала, например один из стандартных: Стандартные_шейдеры_материалов.

Физические свойства

physmaterial (int) - тип физического материала, может принимать значения аналогичные MTLTYPE_PHYSIC:

  • 0 - бетон
  • 1 - металл
  • 2 - стекло
  • 3 - пластик
  • 4 - дерево
  • 5 - плоть
  • 6 - земля/песок
  • 7 - вода
  • 8 - листва/трава

durability (float) - коэффициент пробиваемости.

hit_chance (float) - шанс столкновения.

density (float) - плотность материала кг/м3.

Флаги

Флаги индивидуальны для каждого конкретного шейдера, задаются в формате flag.Имя флага и имеют логический тип. Значение по умолчанию для каждого флага -- ложь.

Пример синтаксиса флага:

flag.has_parameter_texture = 1

Текстуры

Текстуры индивидуальны для каждого конкретного шейдера, задаются в формате tex.Имя текстуры и имеют строковый тип.

Пример синтаксиса текстуры:

tex.txBase = texture_name.dds

Константы

Константы индивидуальны для каждого конкретного шейдера, задаются в формате prop.Имя константы и имеют векторный тип (float4). Для указания обязательна минимум одна компонента, остальные принимают значение 0.0

Пример синтаксиса константы:

prop.pbr_roughness = 1.0


См. также