Стандартный материал на основе физических законов освещения, использующий конвенцию Metallic-Roughness.
Рендеринг на основе физики (PBR) является стандартом во многих 3Д-приложениях. Этот подход отличается от старых тем, что вместо использования приближенных данных о том, как свет взаимодействует с поверхностью, используется физически корректная модель. Идея заключается в том, что вместо того, чтобы настраивать материалы так, чтобы они хорошо выглядели при определенном освещении, можно создать материал, который будет "правильно" реагировать на все сценарии освещения.
Для достижения наилучших результатов при использовании этого материала всегда следует указывать карту окружения.
parameters — (необ.) объект с одним или несколькими свойствами, определяющими внешний вид материала. Сюда можно передать любое свойство материала (включая любое свойство, унаследованное от Material).
Исключением является свойство color, которое может быть передано в виде шестнадцатеричной строки и по умолчанию имеет значение 0xffffff (белый). Для него производится вызов метода Color.set(color).
Вместо создания данного материала с использованием «Ява Скрипта», более эффективным методом будет сделать аналогичный материал в «Блендере», «3дс Максе» или «Майе».
Общие свойства смотрите в базовом классе Material.
Красный канал этой текстуры используется в качестве карты эмбиент окклюжн. По умолчанию — null. Для карты aoMap требуется вторая текстурная развёртка.
Интенсивность эффекта эмбиент окклюжн. По умолчанию - 1. Нулевое значение отключает эффект.
Текстура для создания карты неровностей. Черные и белые значения отображают воспринимаемую глубину относительно освещения. Фактически не влияет на геометрию объекта, только на освещение. Если определена карта нормалей, то она будет проигнорирована.
Насколько сильно карта неровностей влияет на материал. Типичные диапазоны 0-1. По умолчанию — 1.
Цвет материала, по умолчанию используется белый цвет (0xffffff).
Объект вида:
{ 'STANDARD': '' };
Используется в WebGLRenderer для выбора шейдеров.
Излучающий (световой) цвет материала, по сути, сплошной цвет, на который не влияет другое освещение. По умолчанию — черный.
Устанавливает карту излучения (свечения). По умолчанию — null. Цвет эмиссионной карты модулируется цветом эмиссии и интенсивностью эмиссии. Если у вас есть эмиссионная карта, обязательно установите цвет излучения на какой-либо другой, но не черный.
Интенсивность излучаемого света. Модулирует цвет излучения. По умолчанию - 1.
Карта окружения. Для обеспечения физически корректного рендеринга следует добавлять только те карты окружения, которые были предварительно обработаны PMREMGenerator. Назначается автоматически из соответствующего объекта CubeReflectionProbe, если Material.envMapAutoAssign имеет значение true. По умолчанию — null.
Масштабирует эффект карты окружения путем умножения ее цвета. По умолчанию 1.
Matrix4 используется для применения эффекта параллакса к .envMap материала. Эта матрица переносит преобразование из мирового пространства в пространство конкретного reflection probe, карту окружения которого этот материал использует для рендеринга. Вычисляется автоматически, если Material.envMapAutoAssign — true. По умолчанию используется единичная матрица.
Matrix4, обратная к .envMapParallaxMatrix. Используется для применения эффекта параллакса к .envMap материала. Вычисляется автоматически, если Material.envMapAutoAssign — true. По умолчанию используется единичная матрица.
Определяет тип объема параллакса. Такое же, как CubeReflectionProbe.parallaxType. Назначается автоматически из соответствующего CubeReflectionProbe, если Material.envMapAutoAssign — true. По умолчанию ReflectionProbeTypeInfinite.
Использовать ли плоскостной шейдинг для геометрии модели. По умолчанию false.
Будет ли туман влиять на данный материал. По умолчанию true.
Флаг, указывающий что объект является экземпляром MeshStandardMaterial. Только для чтения.
Карта цветов. Может иметь дополнительный альфа-канал, используемый в сочетании со свойствами .transparent и .alphaTest. По умолчанию null. Цвет данной текстуры модулируется диффузным цветом.
Насколько материал похож на металл. Неметаллические материалы, такие как дерево или камень, используют 0.0, металлические - 1.0, и ничего (обычно) между ними нет. По умолчанию — 0. Значения между 0.0 и 1.0 могут использоваться для получения эффекта ржавчины. Если указана карта metalnessMap, оба значения перемножаются.
Синий канал этой текстуры используется для изменения "металличности" материала.
Текстура для создания карты нормалей. Значения RGB влияют на нормаль поверхности для каждого фрагмента пикселя и изменяют способ освещения. Карты нормалей не изменяют фактическую форму поверхности, только освещение. В случае, если материал имеет карту нормалей, созданную с использованием левосторонней конвенции, компонент y .normalScale должен быть отрицательным, чтобы компенсировать разную ориентацию.
Насколько сильно карта нормалей влияет на материал. Типичные диапазон - 0-1. По умолчанию используется вектор (1, 1).
Насколько шероховатым кажется материал. 0.0 означает гладкое зеркальное отражение, 1.0 - полностью рассеянное. По умолчанию 1.0. Если указан параметр roughnessMap, оба значения умножаются.
Зеленый канал этой текстуры используется для изменения шероховатости материала.
Рендерит геометрию в виде каркаса («вайрфрейма»). По умолчанию false (т.е. используется полное заполнение полигонов).
Управляет толщиной каркаса. По умолчанию - 1.
В связи с ограничениями WebGL, на большинстве платформ ширина линии всегда будет равна 1, независимо от установленного значения.
Общие методы смотрите в базовом классе Material.
О том как получить исходный код этого модуля читайте тут.