Manual de Apoio 2010
Manual de Apoio 2010
Manual de Apoio 2010
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
(a) GL EYE LINEAR(b) GL EYE LINEAR após ligeira rotaçãoFigura 9.5: Função GL EYE LINEAR9.4.3 Sphere MappingAo utilizar o GL SPHERE MAP o OpenGL calcula as coor<strong>de</strong>nadas das texturas <strong>de</strong> tal forma que ficamos coma impressão <strong>de</strong> que o objecto actual está a reflectir a textura que lhe aplicámos. O excerto do programaTexGen.java em baixo exemplifica a utilização da função sphere mapping:gl. glTexGeni ( GL2 .GL_S , GL2 . GL_TEXTURE_GEN_MODE , GL2 . GL_SPHERE_MAP );gl. glTexGeni ( GL2 .GL_T , GL2 . GL_TEXTURE_GEN_MODE , GL2 . GL_SPHERE_MAP );Para obter uma sensação <strong>de</strong> reflexão convincente, uma textura é normalmente adquirida utilizando uma lentefish-eye.Apesar <strong>de</strong> o sphere mapping ter sido substituído pelo cube mapping (Secção 9.5), ainda se encontram algunscasos <strong>de</strong> uso, na medida em que apenas uma textura é necessária, ao contrário do cube mapping on<strong>de</strong> sãonecessárias 6 !. Se apenas queremos dar a sensação <strong>de</strong> reflexão e não realismo, o sphere mapping é uma boaescolha.Um exemplo em que o sphere mapping faz um match perfeito, é o caso das superfícies que não reflectem oambiente <strong>de</strong> forma não espelhada, como por exemplo uma peça <strong>de</strong> metal não uniforme.No programa TexGen.java foi utilizada a imagem <strong>de</strong> fundo (constante em todos os exemplos) para aplicarna textura com a função sphere map. Quando aplicamos transformações, o torus parece reflectir o ambiente(Figura 9.6).9.5 Cube MappingOs últimos dois modos <strong>de</strong> geração <strong>de</strong> coor<strong>de</strong>nadas são o GL REFLECTCION MAP e o GL NORMAL MAP, ambos requerema utilização <strong>de</strong> um tipo especial <strong>de</strong> textura <strong>de</strong> ambiente (environment texture) - o cube map.A Figura 9.7 mostra a disposição das seis texturas nas faces do cube map utilizado no programa CubeMap.java(ver Apêndice C.5).Este mapa será uma aproximação das vistas (frente, trás, esquerda, direita, “tecto” e chão) <strong>de</strong> um cenárioreal. Utilizando o modo GL REFLECTION MAP, é possível criar uma reflexão bastante precisa.9.5.1 Carregamento do Cube MapO cube mapping adiciona 6 novos valores para o primeiro argumento da função glTexImage2D:• GL TEXTURE CUBE MAP POSITIVE X• GL TEXTURE CUBE MAP NEGATIVE X• GL TEXTURE CUBE MAP POSITIVE Y• GL TEXTURE CUBE MAP NEGATIVE Y95