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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Texturas<br />

//////////////////////////////////////////////<br />

///////////////// Texturas ///////////////////<br />

//////////////////////////////////////////////<br />

texture DiffuseTexture : DIFFUSE<br />

<<br />

string ResourceName = "<strong>de</strong>fault_color.dds";<br />

string ResourceType = "2D";<br />

>;<br />

sampler2D DiffuseSampler = sampler_state<br />

{<br />

Texture = ;<br />

MinFilter = Linear;<br />

MagFilter = Linear;<br />

MipFilter = Linear;<br />

AddressU = WRAP;<br />

AddressV = WRAP;<br />

};<br />

Definimos <strong>la</strong>s variables globales que tiene re<strong>la</strong>ción con <strong>la</strong>s texturas. Lo más <strong>de</strong>stacable <strong>de</strong> esto es <strong>la</strong> posibilidad <strong>de</strong><br />

referenciar a texturas almacenadas en un archivo externo, algo muy importante para el <strong>de</strong>sarrollo <strong>de</strong> sha<strong>de</strong>rs en una<br />

herramienta. También <strong>de</strong>finimos <strong>la</strong> semántica, en este caso especificamos que <strong>la</strong> textura será utilizada como textura<br />

difusa, o dicho <strong>de</strong> otra manera, le indicamos que <strong>la</strong> textura le dará el color principal a los objetos a los cuales le<br />

aplicamos este material. A<strong>de</strong>más, <strong>de</strong>finimos el sampler <strong>de</strong> <strong>la</strong> textura, indicando el tipo <strong>de</strong>l filtrado utilizado y los<br />

modos <strong>de</strong> direccionamiento <strong>de</strong> <strong>la</strong> textura.<br />

4.4.2 Estructuras<br />

Es hora <strong>de</strong> <strong>de</strong>finir <strong>la</strong>s estructuras que especifican los parámetros <strong>de</strong> entrada y salida <strong>de</strong> los sha<strong>de</strong>rs. En realidad, los<br />

parámetros <strong>de</strong> entrada los podríamos haber <strong>de</strong>c<strong>la</strong>rado individualmente en el cuerpo <strong>de</strong> <strong>la</strong> función que calcu<strong>la</strong> el<br />

sha<strong>de</strong>r. Esta <strong>de</strong>cisión generalmente va en gustos. Personalmente consi<strong>de</strong>ro que es más organizado <strong>de</strong>finir los<br />

parámetros <strong>de</strong> entrada como estructuras. Mas teniendo en cuenta que los parámetros <strong>de</strong> salida <strong>de</strong>l vertex sha<strong>de</strong>r<br />

son los parámetros <strong>de</strong> entrada <strong>de</strong>l pixel sha<strong>de</strong>r.<br />

//////////////////////////////////////////////<br />

/////////////// Estruturas ///////////////////<br />

//////////////////////////////////////////////<br />

struct vertexInput {<br />

float3 Position : POSITION;<br />

float4 UV : TEXCOORD0;<br />

float4 Normal : NORMAL;<br />

};<br />

struct vertexOutput {<br />

float4 HPosition : POSITION;<br />

float2 UV : TEXCOORD0;<br />

float3 WorldNormal : TEXCOORD1;<br />

float3 WorldView : TEXCOORD2;<br />

float3 PointLightVec: TEXCOORD3;<br />

float3 SpotLightVec : TEXCOORD4;<br />

};<br />

Página 75

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

Saved successfully!

Ooh no, something went wrong!