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

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

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

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

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

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

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

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

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

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

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

Условные обозначения

В скобках курсивом указан тип.

Если в имени настройки есть скобки, значит настроек несколько, символы/слова берутся из скобок. Например, microrelief_(r, g, b, a) описывает 4 настройки:

  • microrelief_r
  • microrelief_g
  • microrelief_b
  • microrelief_a

Если в настройке имеется слэш "/", значит идет перечисление одинаковых по значению настроек, внутри описания будет также перечисление при помощи слэша, например:

  • vs_world/ps_world - отправлять ли в вершинный/пиксельный шейдер мировую матрицу.

Настройки

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

model (int) - тип модели материала, может принимать значения аналогичные MTLTYPE_MODEL:

  • 0 - статическая геометрия
  • 1 - растительность, трава
  • 2 - растительность, деревья
  • 3 - анимационная модель

use_dest_color (logic) - принимает ли материал цвет.

lighted (logic) - освещаемый ли материал.

alphatest (logic) - использовать ли альфа тест при рендере материала.

texture (text) - имя основной текстуры с расширением.

vs (text) - имя вершинного шейдера с расширением.

ps (text) - имя пиксельного шейдера с расширением.


vs_world/ps_world (logic) - отправлять ли в вершинный/пиксельный шейдер мировую матрицу.

vs_view/ps_view (logic) - отправлять ли в вершинный/пиксельный шейдер видовую матрицу.

vs_projection/ps_projection (logic) - отправлять ли в вершинный/пиксельный шейдер проекционную матрицу.

vs_worldview/ps_worldview (logic) - отправлять ли в вершинный/пиксельный шейдер матрицу произведения мировой и видовой матриц.

vs_worldviewprojection/ps_worldviewprojection (logic) - отправлять ли в вершинный/пиксельный шейдер матрицу произведения мировой, видовой и проекционной матриц.

vs_poscam/ps_poscam (logic) - отправлять ли в вершинный/пиксельный шейдер float3 вектор позиции камеры/наблюдателя.

vs_timedelta/ps_timedelta (logic) - отправлять ли в вершинный/пиксельный шейдер float2 вектор, где x - текущее время затраченное на кадр в миллисекундах, а y - общее время всех кадров в миллисекундах.

vs_winsize/ps_winsize (logic) - отправлять ли в вершинный/пиксельный шейдер float2 вектор размеров окна рендера в пикселях.

vs_userdata/ps_userdata (logic) - отправлять ли в вершинный/пиксельный шейдер пользовательский float4 вектор.

vs_userdata_(x,y,z,w)/ps_userdata_(x,y,z,w) (float) - значения компонентов пользовательского float4 вектора для отправки в вершинный/пиксельный шейдер.

Свойства детализации

mask (text) - имя текстуры маски с расширением, может иметь значение 0, в случае если маска не используется.

microrelief_(r, g, b, a) (text) - имена микро рельефных текстур с расширением (normal map) для каждого канала маски, могут иметь значение 0, в случае если не используются.

detail_(r, g, b, a) (text) - имена детальных текстур расширением для каждого канала маски, могут иметь значение 0, в случае если не используются.

Параметры освещения

use_texparamlight (logic) - использовать ли текстуру для задания параметров освещения.

texparamligth (text) - имя текстуры с параметрами освещения, с расширением.

roughness (float) - шероховатость поверхности.

f0 (float) - отражательная способность поверхности.

thickness (float) - просвечиваемость поверхности.

transparent (logic) - поддерживает ли материал свойство полупрозрачности.

reflection (int) - тип отражения, может принимать значения аналогично MTLTYPE_REFLECT:

  • 0 - нет отражений
  • 1 - плоские, например для воды, когда она представлена плоской поверхностью
  • 2 - объемные/кубические динамические
  • 3 - объемные/кубические статические

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

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

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

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

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

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

См. также