Version: 2019.3
ShaderLab: SubShader
ShaderLab culling and depth testing

ShaderLab: Pass

El bloque pass causa que la geometría de un GameObject sea renderizado una vez.

Sintaxis

Pass { [Name and Tags] [RenderSetup] }

El comando básico Pass contiene una lista de comandos de configuración del render state.

Name (nombre) y tags (etiquetas)

Un pass puede definir su Name y número arbitrario de Tags. Se trata de strings de nombre/valor que comunican la intención del pase al motor de representación.

Configuración del Render state

Un Pass establece varios estados del hardware gráfico, como si la mezcla alfa debe activarse o si se deben usar pruebas de profundidad.

Los comandos son los siguientes:

Cull

Cull Back | Front | Off

Configura el modo de culling del polígono.

ZTest

ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always)

Establece el modo de prueba del buffer de profundidad.

ZWrite

ZWrite On | Off

Configura el modo de escritura del buffer de profundidad.

Offset

Offset OffsetFactor, OffsetUnits

Configura el desplazamiento de la profundidad del buffer Z. Consulte la documentación en la página Cull y Depth page para obtener más detalles.

Consulte la documentación de Cull y Depth para obtener más detalles sobre Cull, ZTest, ZWrite y Offset.

Blend

Blend sourceBlendMode destBlendMode
Blend sourceBlendMode destBlendMode, alphaSourceBlendMode alphaDestBlendMode
BlendOp colorOp
BlendOp colorOp, alphaOp
AlphaToMask On | Off

Sets alpha blending, alpha operation, and alpha-to-coverage modes. See documentation on Blending for more details.

ColorMask

ColorMask RGB | A | 0 | any combination of R, G, B, A

Configura la máscara de escritura del canal de color. Escribir ColorMask 0 desactiva el renderizado a todos los canales de color. El modo predeterminado es escribir a todos los canales (RGBA), pero para algunos efectos especiales es posible que desee dejar determinados canales sin modificar o desactivar el color escribe completamente.

When using multiple render target (MRT) rendering, it is possible to set up different color masks for each render target, by adding index (0–7) at the end. For example, ColorMask RGB 3 would make render target #3 write only to RGB channels.

Comandos de función fija Shader Legacy

Una serie de comandos se utilizan para escribir legacy “estilo de función fija” Shaders. Esto se considera una funcionalidad obsoleta, al igual que escribir Surface Shaders o Shader programs permite una mayor flexibilidad. Sin embargo, para Shaders muy simples, escribirlos en estilo de función fija a veces puede ser más fácil, por lo que los comandos se proporcionan aquí. Tenga en cuenta que todos los comandos siguientes son ignorados si no está utilizando Shaders de función fija.

Iluminación de función fija y Material

Lighting On | Off
Material { Material Block }
SeparateSpecular On | Off
Color Color-value
ColorMaterial AmbientAndDiffuse | Emission

Todos estos controlan la iluminación de función fija por vértice: activan los colores de los materiales, activan los reflejos especulares, proporcionan color predeterminado (si la iluminación del vértice está desactivada) y controlan cómo afectan los colores del vértice de la malla a la iluminación. Consulte la documentación sobre [Materiales](Material SL) para obtener más detalles.

Niebla de función fija

Fog { Fog Block }

Configura los parámetros de Niebla de función fija. Mire la documentación acerca de Fogging (niebla) para más detalles.

AlphaTest de Función-Fija

AlphaTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always) CutoffValue

Activa la prueba alpha de función fija. Vea la documentación sobre alpha testing para más detalles.

Combinadores de texturas de función fija

Después de la configuración del render state, utilice los comandos SetTexture para especificar un número de texturas y sus modos de combinación:

SetTexture textureProperty { combine options }

Detalles

Los Shader passes interactuan con el rendering pipeline de varias maneras; Por ejemplo, un Pass puede indicar que sólo debe utilizarse para deferred shading mediante el comando Tags. Ciertos pases también se pueden ejecutar varias veces en el mismo GameObject; Por ejemplo, en forward rendering, la opción “ForwardAdd”. Se ejecuta varias veces en función de cuántas luces afectan al GameObject. Consulte la documentación de la Render Pipeline para obtener más detalles.

Mirar también

Hay varios pases especiales disponibles para reutilizar la funcionalidad común o implementar varios efectos de gama alta:

  • UsePass incluye passes nombrados de otro shader.
  • GrabPass agarra el contenido de la pantalla en una textura, para su uso en un paso posterior.
ShaderLab: SubShader
ShaderLab culling and depth testing