El bloque pass causa que la geometría de un GameObject sea renderizado una vez.
Pass { [Name and Tags] [RenderSetup] }
El comando básico Pass contiene una lista de comandos de configuración del render state.
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.
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 Back | Front | Off
Configura el modo de culling del polígono.
ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always)
Establece el modo de prueba del buffer de profundidad.
ZWrite On | Off
Configura el modo de escritura del buffer de profundidad.
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 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.
Conservative True | False
Set conservative rasterization on and off. Before use, check for hardware support via SystemInfo.supportsConservativeRaster
.
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.
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.
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.
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 (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.
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 }
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.
Hay varios pases especiales disponibles para reutilizar la funcionalidad común o implementar varios efectos de gama alta: