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. |