Перейти к основному содержимому

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

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

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

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

Все файлы материалов располагаются по относительному пути 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