Consigue un 20% de descuento usando el código RELEASE en la compra de tu libro. Por tiempo limitado.

Introducción al lenguaje de programación de shaders

3.3.1. Cg / HLSL variables y vectores de conexión

Esta publicación está disponible en...

Continuando con el shader USB_simple_color, podemos notar que dentro de nuestro programa se encuentra una variable de tipo sampler2D y un vector de cuatro dimensiones para la definición de la textura _MainTex.

sampler2D _MainTex;
float4 _MainTex_ST;

Estas variables de conexión han sido declaradas de manera “global” dentro del programa Cg y corresponden a una referencia de la propiedad _MainTex, la cual fue incluida previamente en las Propiedades del shader.

Las variables de conexión son utilizadas para conectar los valores o parámetros de las propiedades con las variables o vectores internos de nuestro programa. En el caso de _MainTex, podremos asignar una textura desde el Inspector de Unity y utilizarla como textura en el shader.

Para entender este concepto de mejor manera, vamos a suponer que deseamos crear un shader que tenga la capacidad de cambiar de color. Para ello, tendríamos que ir a nuestras propiedades, crear una propiedad de tipo “Color” y luego generar una variable de conexión dentro del campo CGPROGRAM, de esta manera podremos generar un vínculo entre ellas.

Properties    
{
    // first declare the property
    _Color (“Tint”, Color) = (1, 1, 1, 1)
}
    ...
    CGPROGRAM  
    ...  
    // then declare the connection variable
    sampler2D _MainTex;
    float4 _Color;
    ...
    ENDCG

Generalmente las variables globales en nuestro programa Cg o HLSL son declaradas con la palabra “uniform” (e.g. uniform float4 _Color) sin embargo, Unity omite este paso ya que esta declaración está incluida internamente en el shader.

Siguenos para mantenerte informado sobre todas las novedades, actualizaciones y más.

Únete al grupo para compartir tus experiencias con otros desarrolladores.

¡Suscríbete a nuestro canal y sigue aprendiendo sobre desarrollo de juegos!

jettelly-logo

Jettelly Team

Somos un equipo de desarrolladores independientes con más de 9 años de experiencia en videojuegos. Como estudio independiente, hemos desarrollado Nom Noms el que publicamos con Hyperbeard en 2019. Actualmente estamos desarrollando La Biblia de Shader en Unity.

Síguenos en nuestras redes sociales.