ShaderLab: Blending
ShaderLab: Stencil

ShaderLab: Pass Tags

Los passes usan etiquetas para decir cómo y cuándo esperan que se rendericen al motor de rendering.

Sintaxis

    Tags { "TagName1" = "Value1" "TagName2" = "Value2" }

Especifica TagName1 para tener Value1, TagName2 para tener Value2. Puede tener tantas etiquetas como quieras.

Detalles

Las etiquetas son básicamente pares clave-valor. En el interior de las etiquetas Pass se usan para controlar el papel que este paso tiene en el pipeline de iluminación (ambiente, iluminado por vértices, iluminado por píxeles, etc.) y algunas otras opciones. Tenga en cuenta que las siguientes etiquetas reconocidas por Unity deben estar dentro de la sección Pass y no dentro de SubShader.

Etiqueta LightMode

La etiqueta LightMode define el paso ’en el pipeline de iluminación. Mire render pipeline para más detalles. Estas etiquetas se utilizan raramente manualmente; La mayoría de las veces shaders que necesitan interactuar con la iluminación se escriben como Surface Shaders y luego todos los detalles son atendidos.

Los valores posibles para la etiqueta LightMode son:

  • Always: Siempre se renderiza; ninguna iluminación se aplica.
  • ForwardBase: Se utiliza en Forward rendering, ambiente, luz direccional principal, luces de vértice/SH y lightmaps.
  • ForwardAdd: Utilizado en Forward rendering; Aditivo por píxel luces se aplican, un paso por luz.
  • Deferred: Se utiliza en Deferred Shading; renderiza el g-buffer.
  • ShadowCaster: Renderiza la profundidad de un objeto al shadowmap o una textura de profundidad.
  • PrepassBase: Utilizado en legacy Deferred Lighting, renderiza las normales y el exponente especular.
  • PrepassFinal: Utilizado en legacy Deferred Lighting, brinda el color final combinando texturas, iluminación y emisión.
  • Vertex: Se utiliza en legacy Vertex Lit rendering cuando el objeto no es lightmapped; Se aplican todas las luces de vértice.
  • VertexLMRGBM: Se utiliza en legacy Vertex Lit rendering cuando el objeto es lightmapped; En plataformas donde el lightmap está codificado en RGBM (PC y consola).
  • VertexLM: Se utiliza en legacy Vertex Lit rendering cuando el objeto es lightmapped; En las plataformas donde el lightmap es codificado LDR-doble (plataformas móviles).

Etiqueta PassFlags

Un pass puede indicar flags que cambian cómo el rendering pipeline pasa los datos a este. Esto se hace utilizando la etiqueta PassFlags, con un valor con nombres de flags separados por el espacio. Actualmente, los flags soportados son:

  • OnlyDirectional: Cuando se utiliza en el tipo de pase ForwardBase, este flag hace que solo la directional light principal y los datos del ambient/lightprobe sean pasados al shader. Esto significa que los datos de las luces no importantes no se pasan a las variables shader de armónicos esféricos y vertex light. Consulte Forward rendering para obtener más detalles.

Etiqueta RequireOptions

Un pass puede indicar que sólo debe ser prestado cuando se cumplen algunas condiciones externas. Esto se hace utilizando la etiqueta RequireOptions, cuyo valor es una cadena de opciones separadas por el espacio. Actualmente, las opciones soportadas por Unity son:

  • SoftVegetation: Renderizar este pase sólo si Soft Vegetation está activada en Quality Settings.

Mirar también

Los SubShaders se pueden dar Tags (etiquetas) también, mirar las Etiquetas SubShader.

ShaderLab: Blending
ShaderLab: Stencil