Untitled - Departamento de Ciencias e Ingeniería de la Computación
Untitled - Departamento de Ciencias e Ingeniería de la Computación
Untitled - Departamento de Ciencias e Ingeniería de la Computación
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
4.2.2 Standard Annotations and Semantics (DXSAS)<br />
FX Composer trabaja sobre código en HLSL, el cual respeta un estándar <strong>de</strong>sarrol<strong>la</strong>do por Microsoft conocido como<br />
standard annotations and semantics. DXSAS permite especificar en el propio código <strong>de</strong>l sha<strong>de</strong>r cierta información<br />
sobre el significado <strong>de</strong> ciertas variables y sus valores iníciales. Esta información es obviada por el compi<strong>la</strong>dor <strong>de</strong><br />
HLSL, solo tiene utilidad para herramientas o programas que entiendan DXSAS. A<strong>de</strong>más, el uso <strong>de</strong> DXSAS tiene<br />
aparejada otra ventaja dado que nos permite enten<strong>de</strong>r el código más fácilmente.<br />
Para enten<strong>de</strong>r que es DXSAS veamos el siguiente ejemplo el cual muestra una <strong>de</strong>finición clásica <strong>de</strong> una textura usada<br />
en un programa HLSL.<br />
texture diffuseTexture;<br />
Esta información no le dice mucho a una herramienta, solo sabe que es una textura, no sabe para qué es usada ni<br />
cuál es el contenido que lleva. Agreguémosle información siguiendo el estándar DXSAS.<br />
texture diffuseTexture : Diffuse // Semántica<br />
<<br />
string ResourceName = "<strong>de</strong>fault_color.dds"; // Anotación<br />
>;<br />
DXSAS permite especificar <strong>la</strong> semántica <strong>de</strong> ciertas variables globales, en este caso usando el i<strong>de</strong>ntificador Diffuse le<br />
indicamos que <strong>la</strong> variable diffuseTexture es usada como una textura que especifica el color difuso.<br />
Muy bien, ahora <strong>la</strong> herramienta sabe que es y para qué sirve diffuseTexture, pero ¿qué<br />
<strong>de</strong>be mostrar? Acá entra en juego <strong>la</strong>s anotaciones. En este caso, <strong>la</strong>s anotaciones<br />
permiten asignarle a <strong>la</strong> variable una textura <strong>de</strong>s<strong>de</strong> un archivo. Esta información se<br />
enmarca con los signos menor y mayor. Notemos que nos permite asignar como valor<br />
inicial el contenido <strong>de</strong> un archivo externo, esto es extremadamente útil para inicializar<br />
texturas.<br />
A<strong>de</strong>más, <strong>la</strong>s semánticas tienen otros propósitos. Por ejemplo, po<strong>de</strong>mos indicar que el<br />
valor <strong>de</strong> una variable podrá ser contro<strong>la</strong>do con el editor gráfico <strong>de</strong> propieda<strong>de</strong>s <strong>de</strong>l<br />
sha<strong>de</strong>r. En <strong>la</strong> figura <strong>de</strong> <strong>la</strong> <strong>de</strong>recha po<strong>de</strong>mos apreciar un ejemplo <strong>de</strong>l editor gráfico <strong>de</strong><br />
propieda<strong>de</strong>s <strong>de</strong>l sha<strong>de</strong>r. Fijémonos que po<strong>de</strong>mos modificar, a través <strong>de</strong> una interfaz<br />
gráfica, el color <strong>de</strong> <strong>la</strong>s luces, su posición, dirección y otros parámetros <strong>de</strong>l sha<strong>de</strong>r.<br />
Enten<strong>de</strong>r DXSAS es muy importante para enten<strong>de</strong>r cómo funciona FX Composer. A<strong>de</strong>más, muchos <strong>de</strong> los sha<strong>de</strong>rs<br />
que se encuentran en internet siguen el estándar DXSAS (en parte gracias a FX Composer), lo cual permite<br />
visualizarlos directamente y sin modificaciones sobre FX Composer.<br />
Página 67