Version: 2021.1
ShaderLab: Legacy Fog
ShaderLab: UsePass

ShaderLab: Legacy BindChannels

El comando BindChannels le permite a usted especificar cómo los datos del vértice se asignan al hardware gráfico.

*Nota: Los BindChannels no tienen efecto cuando los vertex programs se utilizan, en tal caso tales bindings (uniones) son controladas por entradas de vertex shader. Se recomienda utilizar programmable shaders estos días en vez de un procesamiento de vértice fixed function.

Por defecto Unity averigua los bindings por usted, pero en algunos casos usted querrá personalizar algunos para su uso.

Por ejemplo usted puede asignar el conjunto principal UV para que sea utilizado en la primera fase de textura y el segundo conjunto de UV para que sea utilizado en la segunda fase; o decirle al hardware que los colores del vértice se debería tener en cuenta.

Sintaxis

BindChannels { Bind "source", target }

Específica que la source del vertex data se asigne al hardware target.

Source puede ser una de:

  • Vertex: Posición del vértice
  • Normal: Normal del vértice
  • Tangent: Tangente del vértice
  • Texcoord: Coordenada UV principal
  • Texcoord1: Coordenada UV secundaria
  • Color: Color por-vértice

Target puede que ser una de:

  • Vertex: Posición del vértice
  • Normal: Normal del vértice
  • Tangent: Tangente del vértice
  • Texcoord0, Texcoord1, …: coordenadas de textura para fase de textura correspondiente
  • Texcoord: Coordenadas de textura para todos las fases de textura
  • Color: Color del vértice

Detalles

Unity coloca algunas restricciones acerca de qué sources (fuentes) se pueden asignar a qué objetivos (targets) y los objetivos deben coincidir para Vertex, Normal, Tangent y Color. Las coordenadas de textura del mesh (Texcoord y Texcoord1) se pueden asignar a objetivos de coordenadas de textura (Texcoord para todas las fases de textura, o TexcoordN para una fase específica).

Hay dos casos de uso típicos para BindChannels:

  • Shaders que toman vertex colors en cuenta.
  • Shaders que utilicen dos conjuntos UV.

Ejemplos

// 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: Legacy Fog
ShaderLab: UsePass