Интерактивный материал меняет вид, когда он пересекается с другой сеткой или находится в непосредственной близости к ней. Этот эффект достигается с помощью Поля расстояний.
Ниже приведены три способа создания материала, меняющего внешний вид:
Использование расстояния для создания маски, изменяющей цвет сетки,
Использование синусоиды для создания ряби на поверхности сетки в месте пересечения двух сеток, а также
Использование векторной маски, чтобы поверхность сетки тянулась к другой сетке, находящейся в непосредственной близости, и накладывалась на пересекающую сетку.
Узел DistancetoNearestSurface работает только на платформах с включёнными полями расстояний. Поэтому на низкопроизводительных ПК и мобильных устройствах материал может работать не так, как ожидается, поскольку вычисление поля расстояний зачастую либо ограничивает производительность из-за полей высокого разрешения, либо является практически невыполнимой задачей из-за вырождений во входных сетках.
В связи с этим используйте ShadingPathSwitch, чтобы шейдеры в DistancetoNearestSurface работали в соответствии с настройками на мобильных платформах и ПК с низкой производительностью.
Для начала создайте материал, который меняет цвет при пересечении с другой сеткой:
Создайте новый материал в Каталоге ресурсов и дважды нажмите на миниатюру материала, чтобы открыть Редактор материалов.
Создайте следующие узлы:
Узел DistancetoNearestSurface
Узел ShadingPathSwitch
Узел Разделить
Узел Увеличить насыщенность
Узел OneMinus
Узел Время
Узел Синусоида
Узел Add (Сложение)
Узел VertexNormalWS
Узел Маска
3 узла Умножение
Соедините узел DistancetoNearestSurface со вводом По умолчанию узла ShadingPathSwitch.
Выберите узел Разделить и задайте для ввода ConstB значение 50,0. Этот параметр определяет расстояние между объектами, на котором возникают эффекты.
Соедините узел Разделить со вводом Мобильный узла ShadingPathSwitch. Это обеспечит правильную работу маски затенения на всех платформах.
Соедините узел ShadingPathSwitch с узлом Увеличить насыщенность. Это обеспечит насыщение цвета на сетке.
Соедините узел Увеличить насыщенность с узлом OneMinus. При этом шейдеры на сетке будут инвертированы.
Соедините узел OneMinus со вводом Базовый цвет корневого узла материала.
В результате мы получили основу для конфигурации поля расстояний с математическим представлением расстояния между объектами. Шейдеры создают эффект маскирования на сетке. Опробуйте этот эффект на сетке, пересекая её с другой сеткой, чтобы увидеть, как реагирует материал.
Обратите внимание, как материал образует линию вокруг формы автомобиля по мере приближения к нему.
Эффект ряби
Теперь создайте вторую конфигурацию материала, меняющего вид:
Соедините узел Время с вводом B узла Сложение.
Соедините узел Сложение с узлом Синусоида.
Соедините узел Синусоида с вводом B первого узла Умножение.
Выберите и разверните узел Синусоида, после чего измените значение параметра Период на 0,2.
Соедините узел OneMinus с вводом A первого узла Умножение.
Соедините первый узел Умножить с вводом Базовый цвет корневого узла материала. Это приведёт к разрыву связи между узлом OneMinus и корневым узлом материала.
Эта конфигурация применяет цвет к сетке, которая теперь меняет свой вид, используя предыдущую конфигурацию поля расстояний. Материал взаимодействует со средой и сетками поблизости. Когда сетка пересекается с другой сеткой, материал создаёт рябь на поверхности.
Такая конфигурация обычно используется для создания воды.
Эффект оборачивания
Теперь создайте третью конфигурацию материала, меняющего внешний вид:
Соедините узел OneMinus со вводом Базовый цвет корневого узла материала. Это приведёт к разрыву связи между первым узлом Умножить и корневым узлом материала.
Соедините узел VertextNormalWS с узлом Маска.
Соедините узел Маска с вводом A второго узла Умножить.
Выберите и разверните второй узел Умножить, после чего измените значение ввода B на 50,0.
Соедините второй узел Умножить с вводом B третьего узла Умножение.
Соедините узел OneMinus из первой конфигурации с вводом A третьего узла Умножить.
Соедините третий узел Умножить с вводом Смещение позиции в мире корневого узла материала.
Так должна выглядеть вторая конфигурация.
Обратите внимание, как изменился материал в окне предпросмотра, приобретя шипы. При применении к сетке также меняется форма сетки. По мере приближения сетки к автомобилю материал заставляет её оборачиваться вокруг автомобиля.