Пазлы материалов (Materials) — Софт Эйт Софт
Description: Как управлять материалами и текстурами с помощью блоков визуального программирования Вердж3Д.

# Пазлы материалов (Materials)

Пазлы из этой категории выполняют различные операции с материалами и текстурами.

## Содержание

- Перечень пазлов
  - assign material
  - replace texture
  - get texture param
  - set color
  - get color
  - set value
  - get value
  - material from
  - total materials
  - texture from text
  - color picker
  - compose color
  - generate normal map
  - enable/disable wireframe

#

## Перечень пазлов

#

### assign material

Присваивает материал объекту, полностью заменяя старый материал. Пазл поддерживает списки объектов, группы (или списки групп) а также пазл all objects.

Пазл требует для работы другой объект с назначенным материалом (может быть скрытым), наподобие палитры:

Также исходный и конечный меши должны иметь одинаковый набор текстурных развёрток и/или цветовых атрибутов, например в «Блендере»:

По умолчанию пазл "assign material" не поддерживает меши с несколькими материалами и устанавливает первый найденный. Включите multi-material index и укажите номер материала в поле index (например для «Блендера» это будет номер слота материала) чтобы установить материал на нужные полигоны.

В некоторых ситуациях, а именно, когда материал с отображением нормалей назначен объекту, не имеющему нормалей, этот пазл может сделать ваш материал полностью черным. Если это произошло, отключите оптимизацию атрибутов меша в настройках экспорта:

Блендер
3дс Макс
Майя

#

### replace texture

Заменяет текстуру у указанного материала новой, полученной на основе УРЛ-адреса изображения, видео или 2Д-холста.

Данный пазл поддерживает дополнительные настройки, доступные по значку шестерёнки:

enable "once ready do" slot
  Показать/скрыть слот для пазлов, которые будут вызываться по окончании загрузки текстуры.
flexible texture input
  Разрешить использование текстовых пазлов для входа "texture" вместо меню выбора из имеющихся текстур.
prevent texture sharing
  Всегда делать копию исходной текстуры перед назначением изображения. Это предотвращает назначение одного и того же изображения на текстуры, которое могут быть расшарены между различными материалами.

Данная функциональность используется в демо-приложении «Фоторамка» (исходные файлы доступны в магазине ассетов).

Чтобы использовать видео с прозрачностью, используйте формат WebM или HEVC и установите тип прозрачности материала в значение Blend (смотрите раздел про прозрачность в «Блендере» / «Максе» / «Майе»).

#

### get texture param

Извлекает следующие параметры для текстуры, найденной для указанного материала: ширина, высота, аспект или размеры.

#

### set color

Устанавливает R, G и B компоненты цветового параметра указанного материала. Также работает для списков материалов.

Блендер

Вы можете добавить ноды RGB в материалы на основе нод, и их названия будут отображаться в выпадающем меню. Кроме того, доступны входы Base Color (или Color) для нод BSDF Principled, BSDF Diffuse и BSDF Glossy.

В случае glTF-совместимых PBR-материалов входы BaseColor и Emissive доступны только с помощью этого пазла.

3дс Макс

Вы можете добавить Controllers в свои материалы (стандартные или физические), и их названия будут отображаться в выпадающем меню. Кроме того, доступны входы цвета Diffuse (или Base Color) для нод стандартного или физического материала.

В случае glTF-совместимых PBR-материалов входы Base Color и Emission доступны только с помощью этого пазла.

Майя

Вы можете добавить ноды Color Constant в свои материалы, и их названия будут отображаться в выпадающем меню.

В случае glTF-совместимых PBR-материалов входы Base Color и Emission доступны только с помощью этого пазла.

Этот пазл можно также использовать для изменения шейдера окружения. В выпадающем списке название шейдера окружения начинается с "Verge3D_Environment".

Дополнительную информацию о материалах, доступных пользователям «Вердж3Д», можно найти в главе "Обзор системы материалов" данного руководства (см. для «Блендера», «3дс Макса» или «Майи»).

#

### get color

Получить параметр цвета, найденный для указанного материала:

- red — компонент красного цвета.
- green — компонент зеленого цвета.
- blue — компонент синего цвета.
- rgb — Компоненты цвета RGB в виде вектора/списка значений.
- css (hex) — CSS-цвет вида #AA00FF.
- css (rgb) — CSS-цвет вида rgb(127, 0, 255).

Укажите параметр flexible color input, чтобы присвоить параметру пользовательского материала строковое значение.

#

### set value

Установить значение параметра указанного материала. Также работает для списков материалов.

Блендер

Вы можете добавить ноды Value в материалы на основе нод, и их названия будут отображаться в выпадающем меню.

В случае glTF-совместимых PBR-материалов с помощью этого пазла доступны следующие входы: metalness, roughness, bumpScale, emissiveIntesity и envMapIntensity.

3дс Макс

Вы можете добавить Controllers в ваши материалы (стандартные или физические), и их имена будут показаны в выпадающем меню.

В случае glTF-совместимых PBR-материалов с помощью этого пазла доступны следующие входы: Metalness, Roughness, Bump Scale, Emissive Intensity и Environment Map Intensity.

Майя

Вы можете добавить нодыFloat Constant в ваш материал, и их имена будут показаны в выпадающем меню.

В случае glTF-совместимых PBR-материалов, с помощью этого пазла доступны следующие входы: metalness, roughness, bumpScale, emissiveIntensity и envMapIntensity.

Этот пазл можно также использовать для изменения шейдера окружения. В выпадающем списке название шейдера окружения начинается с "Verge3D_Environment".

Более подробную информацию о материалах, доступных пользователям «Вердж3Д», можно найти в главе "Обзор системы материалов" данного руководства (см. для «Блендера», «3дс Макса» или «Майи»).

#

### get value

Получение параметра значения, найденного для указанного материала. Укажите параметр flexible value input, чтобы присвоить пользовательскому параметру материала строковое значение.

#

### material from

Получает название материала, назначенного объекту. По умолчанию, если одному объекту присвоено несколько материалов, возвращается первый из них.

Данный пазл поддерживает дополнительные настройки, доступные по значку шестерёнки:

multi-material index
  По умолчанию пазл "material from" не поддерживает меши с несколькими материалами и возвращает первый найденный. Включите multi-material index и укажите номер материала в поле index (например для «Блендера» это будет номер слота материала) чтобы получить нужный вам материал.
return unique material id
  По умолчанию пазл "material from" возвращает читабельные имена материалов. Однако в ряде случаев (например при использовании одного материала на разных объектах, либо разных материалов с одним и тем же именем) вам может потребоваться изменить материал конкретного объекта, а не изменять их все. Для этого включите настройку return unique material id, чтобы пазл возвращал уникальный идентификатор назначенного материала, а не его имя. Вы можете использовать этот идентификатор (выглядит как: 5c464bf0-043a-40ee-b864-5c026436d7de) во всех пазлах, принимающих на вход материал.

#

### total materials

Возвращает количество материалов, назначенных на объекте.

Например, чтобы назначить один и тот же материал на объекте с несколькими материалами, используйте следующие пазлы:

#

### texture from text

Создает изображение из указанного текста и возвращает его в формате Data URL.

#### Параметры:

text
  Исходный текст.
width, height
  Размеры создаваемого изображения (в пикселях). Рекомендуется использовать значения, кратные двум (256, 512, 1024 и т.д.).
font family
  font-family CSS-свойство для отображения текста. Вы можете использовать системные шрифты, такие как "Arial", либо свои шрифты, загруженные с помощью пазла load font.
size
  Размер текста, отображаемого на изображении (в пикселях).
horizontal align
  Горизонтальное выравнивание текста на создаваемом изображении: center, left, right.
vertical align
  Вертикальное выравнивание текста на создаваемом изображении: middle, top, bottom.
line height
  Высота строки (в пикселях). Если указано нулевое значение, высота определяется автоматически.
justify
  Выравнивание по ширине. Если включено, пазл добавит необходимые интервалы между словами.

#### box params — параметры области текста (активируются с помощью шестерёнки):

Если данные параметры активированы, рендеринг текста будет происходит в воображаемой области, размеры которой меняются с помощью следующих параметров:

box x
  Левая граница области (в пикселях).
box y
  Верхняя граница области (в пикселях).
width
  Ширина области (в пикселях).
height
  Высота области (в пикселях).

#### color params — цветовые параметры (активируются с помощью шестерёнки):

text color
  Цвет текста.
background color
  Цвет фона.

В приведенном ниже примере изображение, сгенерированное из текста, назначается на модель с помощью пазла replace texture:

#

### color picker

Возвращает выбранный цвет в виде CSS-цвета.

#

### compose color

Создать цвет из линейных RGB компонент (или RGBA при включённом входе alpha) и вернуть в виде CSS-цвета.

#

### generate normal map

Преобразует изображение в карту нормалей и возвращает ее в формате Data URL.

Параметры пазла:

(source image)
  УРЛ изображения, обычно черно-белая карта высоты. Также изображения в формате Data URL, могут быть предоставлены как выходные данные texture from text пазла.
strength
  Линейный фактор, влияющий на высоту. Рекомендуемые значения: 0,01 - 5.
level
  Экспоненциальный коэффициент, влияющий на высоту. Рекомендуемые значения: 4 - 10.
blur / sharp
  Коэффициент размытости/резкости в гауссовском фильтре. Рекомендуемые значения: от -10 (размытие) до 10 (резкость).
filter
  Селектор между алгоритмами Собеля или Шарра, используемыми для определения краев.
invert R
  Инвертировать направление в канале R карты нормалей. На данный момент эта функция отключена для Блендер, 3дс Макс и Майя, но в будущем может потребоваться ее включение для других поддерживаемых инструментов.
invert G
  Инвертировать направление в канале G карты нормалей. Должно быть включено для совместимости с пространством нормалей 3дс Макс, но отключено для Блендер/Майя.
invert height
  Изменить интерпретацию высоты, чтобы более темные пиксели соответствовали меньшей высоте.

В примере ниже карта нормалей, сгенерированная из загруженного изображения, используется на модели с помощью пазла replace texture:

#

### enable/disable wireframe

Включение или отключение рендеринга сетки для указанного материала. Может использоваться как нефотореалистичный метод рендеринга, для отладки или оптимизации производительности.

## Проблемы с пазлами?

Обращайтесь за помощью на наш форум!