Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

ShaderLab: устаревшее отображение каналов данных вершин

Примечание. ShaderLabязык Unity для определения структуры объектов Shader. Подробнее
See in Словарь
на этой странице является устаревшей и задокументирован только для обратной совместимости. Если ваш шейдерПрограмма, работающая на графическом процессоре. Подробнее
См. в Словарь
исходный файл включает код HLSL, Unity полностью игнорирует эти команды. Если исходный файл шейдера не включает код HLSL, Unity компилирует эти команды в обычные программы шейдера при импорте.

Совместимость конвейера рендеринга

Название функции Встроенный конвейер рендеринга Универсальный конвейер рендеринга (URP) Конвейер рендеринга высокого разрешения (HDRP) Пользовательский SRP
Legacy vertex data channel mapping Да Нет Нет Нет

Обзор

Команда BindChannels позволяет указать, как данные вершин сопоставляются с графическим оборудованием. По умолчанию Unity определяет привязки за вас, но в некоторых случаях вы хотите, чтобы использовались пользовательские.

Например, вы можете сопоставить первичный набор UV, который будет использоваться на первом этапе текстуры, и вторичный набор UV, который будет использоваться на втором этапе текстуры; или сообщите аппаратному обеспечению, что цвета вершин должны учитываться.

Синтаксис

BindChannels { Bind "source", target }

Указывает, что источник данных вершин сопоставляется с оборудованием цель.

Источник может быть одним из следующих:

  • Вершина: положение вершины
  • НормальныйНаправление, перпендикулярное поверхности сетки, представленное вектором. Unity использует нормали для определения ориентации объекта и применения затенения. Подробнее
    См. в Словарь
    : vertex normal
  • Касательная: касательная к вершине
  • Texcoord: первичная координата UV
  • Texcoord1: дополнительная координата UV
  • Цвет: цвет каждой вершины

Цель может быть одной из следующих:

  • Вершина: положение вершины
  • Обычный: вершина нормальная
  • Касательная: касательная к вершине
  • Texcoord0, Texcoord1, …: координаты текстуры для соответствующей стадии текстуры
  • Texcoord: координаты текстуры для всех этапов текстуры.
  • Цвет: цвет вершин

Подробнее

Unity накладывает некоторые ограничения на то, какие источники могут быть сопоставлены с какими целями. Источник и цель должны совпадать для Вершины, Нормального, Касательной и Цвета. Координаты текстуры из сеткиосновного графического примитива Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
См. в Словарь
(Texcoord и Texcoord1) можно сопоставить с целевыми координатами текстуры (Texcoord для всех этапов текстуры или TexcoordN для определенного этапа).

Есть два типичных варианта использования BindChannels:

  • Шейдеры, учитывающие цвета вершин.
  • Шейдеры, использующие два набора UV.

Примеры

// Maps the first UV set to the first texture stage // and the second UV set to the second texture stage BindChannels { Bind "Vertex", vertex Bind "texcoord", texcoord0 Bind "texcoord1", texcoord1 } // Maps the first UV set to all texture stages // and uses vertex colors BindChannels { Bind "Vertex", vertex Bind "texcoord", texcoord Bind "Color", color }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3