13.07.2015 Views

Manual de Apoio 2010

Manual de Apoio 2010

Manual de Apoio 2010

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.

8.4 Texture EnvironmentNo exemplo Pyramid, a pirâmi<strong>de</strong> é <strong>de</strong>senhada utilizando material <strong>de</strong> cor branca e a textura é aplicada <strong>de</strong> formaque as suas cores são “escaladas” (scaled) segundo a cor da geometria (branca) (Figura 8.7).Figura 8.7: Geometria Branca + Texture = Sha<strong>de</strong>d TextureA forma como a cor dos texels é combinada com a geometria subjacente é controlada pelo texture environment.A sua configuração é feita utilizando a função glTexEnv:glTexEnvi ( int target , int pname , int param );glTexEnvf ( int target , int pname , float param );glTexEnviv ( int target , int pname , IntBuffer param );glTexEnvfv ( int target , int pname , FloatBuffer param );Esta função po<strong>de</strong> ser usada <strong>de</strong> várias formas, e permite configurar parâmetros avançados das texturas. Noexemplo Pyramid, o environment mo<strong>de</strong> é confiurado com o valor GL MODULATE:gl. glTexEnvi ( GL2 . GL_TEXTURE_ENV , GL2 . GL_TEXTURE_ENV_MODE , GL2 . GL_MODULATE );Com a opção GL MODULATE, a cor do texel é multiplicada pela cor da geometria (<strong>de</strong>pois do calculo das luzes).Ao especificar uma cor clara para a geometria (branca, no exemplo) a textura é afectada <strong>de</strong> forma igual àgeometria. Isto permite com a mesma textura obter várias colorizações.Utilizando GL REPLACE, po<strong>de</strong>mos substituir completamente a cor da geometria pela cor do texel. Isto eliminatodos os efeitos aplicados à geometria subjacente. Se a textura tiver um alpha channel po<strong>de</strong>mos utilizar estemodo para tornar zonas da geometria transparente se a imagem contiver blocos também transparentes, activandoo blending.A opção GL DECAL é semelhante à opção GL REPLACE se a imagem não tiver alpha channel. No caso <strong>de</strong> aimagem ter um alpha channel a cor da geometria transparece pela textura no valor do alpha, <strong>de</strong> forma que oobjecto parece ser blen<strong>de</strong>d com os fragmentos subjacentes.Po<strong>de</strong>mos também fazer o blending da geometria com uma cor fixa (Figura 8.8) utilizando:gl. glTexEnvi ( GL2 . GL_TEXTURE_ENV ,GL2 . GL_TEXTURE_ENV_MODE , GL2 . GL_BLEND );gl. glTexEnvfv ( GL2 . GL_TEXTURE_ENV ,GL2 . GL_TEXTURE_ENV_COLOR , new float [] {1f, 0f, 0f, 0f}, 0);Figura 8.8: Utilizando GL BLENDFinalmente po<strong>de</strong>mos fazer a adição do valor da cor dos texels aos fragmentos da geometria, utilizando GL ADDcomo argumento. Os valores que ultrapassem 1.0 são truncados, o que po<strong>de</strong>rá provocar saturação das cores.84

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

Saved successfully!

Ooh no, something went wrong!