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.2.9. Cg / HLSL Include

Esta publicación está disponible en...

La directiva “.cginc” (Cg include) contiene varios archivos que pueden ser utilizados en nuestro shader para traer variables predefinidas y funciones auxiliares.

Si prestamos atención a nuestro shader USB_simple_color, encontraremos las siguientes directivas que han sido declaradas dentro del pase:

  • UNITY_FOG_COORDS(texcoordindex).
  • UnityObjectToClipPos(inputVertex).
  • TRANSFORM_TEX(tex, name).
  • UNITY_TRANSFER_FOG(outputStruct, clipSpacePos).
  • UNITY_APPLY_FOG(inputCoords, colorOutput).

Todas estas funciones pertenecen a “UnityCG.cginc”. Si eliminamos esta directiva nuestro shader no podrá compilar debido a que no tendrá una referencia de ellas.

Otra función definida que podemos encontrar en UnityCG.cginc es UNITY_PI que equivale a 3.14159265359f. Esta última no viene incluida en nuestro shader por defecto ya que se utiliza sólo en casos específicos (e.g. al calcular un triángulo o esfera). En caso de que deseemos revisar las variables y funciones que vienen en nuestros archivos .cginc podemos seguir la siguiente ruta:

Windows → {unity install path}/Data/CGIncludes/UnityCG.cginc
Mac → /Applications/Unity/Unity.app/Contents/CGIncludes/UnityCG.cginc

Además de las directivas que Unity trae por defecto, nosotros podemos crear nuestras propias directivas utilizando la extensión “.cginc”, para ello simplemente debemos crear un nuevo documento, guardarlo con la extensión “.cginc” y luego comenzar a definir nuestras variables y funciones. Más adelante en este libro comenzaremos a utilizar algunas directivas customizadas para trabajar con iluminación, sombras y volúmenes.

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.