Материал для блестящих поверхностей со спекулярными бликами.
Материал использует нефизически основанную модель Blinn-Phong
для расчета отражательной способности. В отличие от модели Lambertian используемой в MeshLambertMaterial
она может имитировать блестящие поверхности со спекулярными бликами (например, лакированное дерево).
Затенение рассчитывается с помощью модели Phong.
При этом вычисляется затенение на пиксель (т.е. в fragment shader,
он же пиксельный шейдер) которая дает более точные результаты, чем модель Gouraud используемая MeshLambertMaterial,
ценой некоторого снижения производительности. MeshStandardMaterial и MeshPhysicalMaterial
также используют эту модель затенения.
Производительность, как правило, выше при использовании этого материала по сравнению с MeshStandardMaterial
или MeshPhysicalMaterial, при потере графической точности.
parameters — (опционально) объект с одним или несколькими свойствами, определяющими внешний вид материала.
Сюда можно передать любое свойство материала (включая любое свойство, унаследованное от Material).
Исключением является свойство color, которое может быть передано в виде шестнадцатеричной строки
и по умолчанию имеет значение 0xffffff (белый). Color.set(color) вызывается внутренне.
Общие свойства см. в базовом классе Material.
Альфа-карта - это черно-белая текстура, которая контролирует непрозрачность поверхности.
(черный: полностью прозрачный; белый: полностью непрозрачный). По умолчанию - null.
Используется только цвет текстуры, игнорируя альфа-канал, если он существует.
Для текстур RGB и RGBA рендерер WebGL будет использовать
зеленый канал при выборке этой текстуры из-за дополнительного бита точности, предоставляемого
для зеленого цвета в DXT-сжатом и несжатом форматах RGB 565. Только яркость и
яркость/альфа-текстуры также будут работать, как и положено.
Красный канал этой текстуры используется в качестве карты окклюзии окружающего пространства. По умолчанию - null. Для карты aoMap требуется второй набор UVs.
Интенсивность эффекта окклюзии окружающей среды. По умолчанию - 1. Ноль - эффект окклюзии отсутствует.
Текстура для создания карты неровностей. Черные и белые значения отображают воспринимаемую глубину относительно освещения. Bump фактически не влияет на геометрию объекта, только на освещение. Если определена карта нормалей, то она будет проигнорирована.
Насколько сильно карта неровностей влияет на материал. Типичные диапазоны 0-1. По умолчанию - 1.
Color материала, по умолчанию установлен на белый цвет (0xffffff).
Как объединить результат цвета поверхности с картой окружения, если таковая имеется.
Варианты v3d.Multiply (по умолчанию), v3d.MixOperation,
v3d.AddOperation. Если выбрано смешивание, то .reflectivity используется для
смешивания двух цветов.
Карта смещения влияет на положение вершин меша. В отличие от других карт которые влияют только на свет и тень материала, смещенные вершины могут отбрасывать тени, блокировать другие объекты и действовать как настоящая геометрия. Текстура смещения представляет собой изображение, на которое наносится значение каждого пикселя (белый - самый высокий), и перемещает вершины меша.
Насколько сильно карта смещения влияет на меш (где черный цвет - нет смещения, а белый - максимальное смещение). Без установленной карты смещения это значение не применяется. По умолчанию - 1.
Смещение значений карты смещения на вершинах меша. Без установленной карты смещения это значение не применяется. По умолчанию равно 0.
Излучающий (световой) цвет материала, по сути, сплошной цвет, на который не влияет другое освещение. По умолчанию - черный.
Устанавливает карту излучения (свечения). По умолчанию - null. Цвет эмиссионной карты модулируется цветом эмиссии и интенсивностью эмиссии. Если у вас есть эмиссионная карта, обязательно установите цвет излучения не на черный.
Интенсивность излучаемого света. Модулирует цвет излучения. По умолчанию - 1.
Карта окружения. По умолчанию равно null.
Карта света. По умолчанию равно null. Для карты света требуется второй набор UVs.
Интенсивность запеченного света. По умолчанию - 1.
Карта цветов. По умолчанию равно null. Цвет карты текстуры модулируется диффузным .color.
Определяет, использует ли материал morphNormals. Установите значение true, чтобы передавать атрибуты morphNormals атрибуты из Geometry в шейдер. По умолчанию false.
Определяет, использует ли материал morphTargets. По умолчанию - false.
Текстура для создания карты нормалей. Значения RGB влияют на нормаль поверхности для каждого фрагмента пикселя и изменяют способ освещения. Карты нормалей не изменяют фактическую форму поверхности, только освещение. В случае если материал имеет карту нормалей, созданную с использованием левосторонней конвенции, компонент y параметра normalScale должна быть отрицательной, чтобы компенсировать разную ориентацию рук.
Тип карты нормалей.
Варианты v3d.TangentSpaceNormalMap (по умолчанию) и v3d.ObjectSpaceNormalMap.
Насколько сильно карта нормалей влияет на материал. Типичные диапазоны - 0-1. По умолчанию это Vector2, установленный на (1,1).
Насколько сильно карта окружения влияет на поверхность; см. также .combine. Значение по умолчанию равно 1, а допустимый диапазон - от 0 (отсутствие отражений) до 1 (полное отражение).
Показатель преломления (IOR) воздуха (приблизительно 1), деленный на показатель преломления материала. Используется с режимами отображения окружения v3d.CubeRefractionMapping и v3d.EquirectangularRefractionMapping. Коэффициент преломления не должен превышать 1. По умолчанию 0,98.
Насколько блестящим является блик .specular; большее значение дает более четкий блик. По умолчанию 30.
Определяет, использует ли материал скиннинг. По умолчанию - false.
Спекулярный цвет материала. По умолчанию Color имеет значение 0x111111 (сильно темно-серый).
Это определяет, насколько блестящим является материал и цвет его блеска.
Значение карты спекуляра влияет как на то, насколько сильно выделяется спекулярная поверхность и на то, как сильно карта окружения влияет на поверхность. По умолчанию равно null.
Рендерить геометрию в виде вайрфрейма. По умолчанию false (т.е. рендеринг в виде плоских полигонов).
Определяет внешний вид концов линий. Возможные значения "butt", "round" и "square". По умолчанию 'round'.
Это соответствует свойству 2D Canvas lineCap
и игнорируется WebGL рендерером.
Определяет внешний вид стыков линий. Возможные значения "round", "bevel" и "miter". По умолчанию 'round'.
Это соответствует свойству 2D Canvas lineJoin
и игнорируется WebGL рендерером.
Управляет толщиной вайрфрейма. По умолчанию 1.
В связи с ограничениями OpenGL Core Profile
с WebGL рендером на большинстве платформ ширина линии будет
всегда будет равна 1, независимо от установленного значения.
Общие методы см. в базовом классе Material.
О том как получить исходный код этого модуля читайте тут.