График шейдеров Unity, декомпозиция UV-карты для использования в качестве градиента непрозрачности

#unity3d #shader #shader-graph

#unity3d #шейдер #шейдер-граф

Вопрос:

Я все еще пытаюсь понять, как работает график шейдеров Unity, но я наткнулся на стену.

Я получаю UV-карту, которая, как я знаю, находится в диапазоне от 0 до 1 в красном канале и от 0 до 1 в зеленом канале.

Я извлекаю красный канал, чтобы смешать две текстуры вместе, но красные каналы выглядят странно.

введите описание изображения здесь

Как вы можете видеть, если я применяю контрастный узел, линия, разделяющая черное и белое, находится слева. Я ожидал, что это будет прямо посередине. Я подумал, что это может быть ошибка контраста, но, как вы можете видеть в узле blend, он показывает больше второй текстуры, чем первой.

В узле предварительного просмотра вы можете видеть, что в нем намного больше белых значений, чем черных значений

Я хотел, чтобы две текстуры равномерно смешивались с каждой стороны и контролировали смешивание (контраст непрозрачности) с помощью числа, при этом «0» полностью смешивается, а «1» вообще не смешивается (левая сторона = tex1 и правая сторона = tex2)

Контраст = 1

Ответ №1:

Мне удается заставить его работать. Виновником был не красный канал, а контрастный узел.

Я решил проблему, используя узел переназначения.

когда контраст равен 0, переназначение в MinMax = 0 ..1 из MinMax = 0 ..1

когда контраст равен 1, переназначение в MinMax = 0,4999 .. 0,5 Из MinMax = 0 ..1

Таким образом, он генерирует черно-белую текстуру с разделительной линией прямо посередине

Контраст == 0

Контраст == 1