Version: 2019.3
Синтаксис ShaderLab: туман
Синтаксис ShaderLab: UsePass

Синтаксис ShaderLab: BindChannels

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

BindChannels не несет никакой нагрузки в случае, если используются вершинные шейдеры, так как в этом случае весь процесс контролируется входными данными вершинных шейдеров.

By default, Unity figures out the bindings for you, but in some cases you want custom ones to be used.

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

Синтаксис

BindChannels { Bind "source", target }

Определяет, что свойство вершины source соответствует свойству вершины target на графической карте.

Вместо Source может быть одно из слов:

  • Vertex: vertex position
  • Normal: vertex normal
  • Tangent: vertex tangent
  • Texcoord: координаты первичной UV
  • Texcoord1: координаты вторичной UV
  • Color: per-vertex color

Вместо Target может быть одно из слов:

  • Vertex: vertex position
  • Normal: vertex normal
  • Tangent: vertex tangent
  • Texcoord0, Texcoord1, …: UV координаты для соответствующей по номеру текстуре.
  • Texcoord: UV координаты для всех текстур
  • Color: vertex color

Детали

В Unity присутствуют некоторые ограничения относительно комбинаций преобразования различных source в различные target. Преобразовывать можно в любой комбинации между Vertex, Normal, Tangent и Color. UV координаты вершин модели (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
}
Синтаксис ShaderLab: туман
Синтаксис ShaderLab: UsePass
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961