Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Texturas
Claudio Esperana
Paulo Roma Cavalcanti
Detalhes de Superfcies
Quais parmetros ou
propriedades pode-se
reproduzir a partir de mapas:
Cor (coeficientes de reflexo
difusa)
Coeficientes de reflexo
especular e difusa
Mapeamento de ambiente
Perturbao do vetor normal
Bump Mapping
Perturbao da superfcie na
direo da normal
Displacement Mapping
Transparncia / opacidade
Espao de Textura
Texturas 2D so funes T (s, t) t
cujo domnio um espao
bidimensional e o 1
contradomnio pode ser cor,
opacidade, etc
comum ajustar a escala da
imagem de tal forma que a
imagem toda se enquadre no
intervalo 0 s, t 1
Normalmente a funo em si
derivada de alguma imagem
capturada 0
Se a imagem est armazenada 0 1 s
numa matriz
Im [0..N1 , 0..M1]
Ento
T (s, t) = Im [ (1 s) N , t M ]
Espao de Textura
T ( s, t ) ( s 0.5) 2 (t 0.5) 2
Funo de Mapeamento
y
Funo de mapeamento inversa
x arccos z
arccos z t
y y
arctan arctan
x x
s
2
Parametrizao do Cilindro
Funo de mapeamento
z
x cos 2 s
y sin z t
zz
Tvis T s
Mapeamento de Texturas em Polgonos
Pixel
Textura
CPU DL Raster Frag FB
Texture
Pixel
c (0.4, 0.2)
b
B C
0, 0 1, 0 s (0.8, 0.4)
Gerando Coordenadas de Texturas
Automaticamente
Habilitar a gerao automtica de coordenadas de textura
glEnable (GL_TEXTURE_GEN_{STRQ});
Especificar parmetros
void glTexGen{ifd} (GLenum coord, GLenum pname, TYPE param);
void glTexGen{ifd}v (GLenum coord, GLenum pname, TYPE *param);
Qual coordenada de textura?
Coord = GL_S / GL_T / GL_R / GL_Q
Plano de referncia
Pname = GL_OBJECT_PLANE / GL_EYE_PLANE
Param = coeficientes A/B/C/D do plano
Modos de gerao de coordenadas
Pname = GL_TEXTURE_GEN_MODE
Param = GL_OBJECT_LINEAR / GL_EYE_LINEAR /
GL_SPHERE_MAP
Gerao Automtica de Coordenadas de
Textura
GL_EYE_LINEAR
Gerao Automtica de Coordenadas de
Textura
GL_OBJECT_LINEAR
GL_NEAREST
Filtragem GL_LINEAR
GL_NEAREST_MIPMAP_NEAREST
GL_NEAREST_MIPMAP_LINEAR
GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_LINEAR_MIPMAP_NEAREST
GL_TEXTURE_1D GL_TEXTURE_MIN_FILTER GL_LINEAR_MIPMAP_LINEAR
Exemplo:
glTexParameteri( target, type, mode );
Textura original
Imagens minificadas
pr-filtradas
Texturas Mipmap
Exemplo:
glTexParameteri( GL_TEXTURE_2D,
GL_TEXTURE_WRAP_S, GL_CLAMP )
glTexParameteri( GL_TEXTURE_2D,
GL_TEXTURE_WRAP_T, GL_REPEAT )
s
GL_REPEAT GL_CLAMP
textura
Modos de Aplicao de Textura