14.04.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!