Unity tiene una serie de funciones de utilidad incorporadas diseñadas para que la escritura de shaders sea simple y fácil.
Consulte los Archivos incluidos de los shaders integrados para obtener una descripción general de los archivos de inclusión de shader proporcionados con Unity.
Función: | Descripción (Description): |
---|---|
float4 UnityObjectToClipPos(float3 pos) |
Transforma un punto del espacio de objeto en el espacio de clip de la cámara en coordenadas homogéneas. Este es el equivalente de mul(UNITY_MATRIX_MVP, float4(pos, 1.0)), y debe ser utilizado en su lugar. |
float3 UnityObjectToViewPos(float3 pos) |
Transforma un punto del espacio de objeto al espacio de vista. Este es el equivalente de__mul(UNITY_MATRIX_MV, float4(pos, 1.0)).xyz__, y debe ser utilizado en su lugar. |
Función: | Descripción (Description): |
---|---|
float3 WorldSpaceViewDir (float4 v) |
Devuelve la dirección del espacio de mundo (no normalizada) desde la posición del vértice del espacio del objeto dado hacia la cámara. |
float3 ObjSpaceViewDir (float4 v) |
Devuelve la dirección del espacio del objeto (no normalizado) desde la posición del vértice del espacio del objeto dado hacia la cámara. |
float2 ParallaxOffset (half h, half height, half3 viewDir) |
Calcula el offset UV para parallax normal mapping. |
fixed Luminance (fixed3 c) |
Convierte el color en luminancia (escala de grises). |
fixed3 DecodeLightmap (fixed4 color) |
Decodifica el color del mapa de luz de Unity (RGBM o dLDR según la plataforma). |
float4 EncodeFloatRGBA (float v) |
Codifica el rango flotante [0..1) en color RGBA, para almacenar en baja precisión del objetivo de renderización. |
float DecodeFloatRGBA (float4 enc) |
Decodifica el color RGBA en un float. |
float2 EncodeFloatRG (float v) |
Codifica el rango float [0..1) en un float2. |
float DecodeFloatRG (float2 enc) |
Decodifica un float RG previamente codificado. |
float2 EncodeViewNormalStereo (float3 n) |
Codifica el espacio de vista normal en dos números en el rango 0..1. |
float3 DecodeViewNormalStereo (float4 enc4) |
Decodifica el espacio de vista normal desde enc4.xy. |
Estas funciones sólo son útiles cuando se utiliza forward rendering (tipos de pass ForwardBase o ForwardAdd).
Función: | Descripción (Description): |
---|---|
float3 WorldSpaceLightDir (float4 v) |
Calcula la dirección del espacio de mundo (no normalizado) a la luz, dada la posición del vértice del espacio del objeto. |
float3 ObjSpaceLightDir (float4 v) |
Calcula la dirección del espacio del objeto (no normalizado) a la luz, dada la posición del vértice del espacio del objeto. |
float3 Shade4PointLights (...) |
Calcula la iluminación de las luces desde cuatro puntos, con datos de luz fuertemente empaquetados en vectores. Forward rendering utiliza esto para calcular la iluminación por vértice. |
The following functions are helpers to compute coordinates used for sampling screen-space textures. They return float4
where the final coordinate to sample texture with can be computed via perspective division (for example xy/w
).
The functions also take care of platform differences in render texture coordinates.
Función: | Descripción (Description): |
---|---|
float4 ComputeScreenPos (float4 clipPos) |
Computes texture coordinate for doing a screenspace-mapped texture sample. Input is clip space position. |
float4 ComputeGrabScreenPos (float4 clipPos) |
Computes texture coordinate for sampling a GrabPass texure. Input is clip space position. |
Estas funciones son útiles cuando utilice shader per-vertex lit (Tipo de pass “Vertex”).
Función: | Descripción (Description): |
---|---|
float3 ShadeVertexLights (float4 vertex, float3 normal) |
Calcula la iluminación desde cuatro luces por vértice y ambiente, dada la posición del espacio de objeto y normal. |