Nona Lista - Textura
Aquecimento
- Inclua no Makefile os comandos
necessários para gerar o executável do
programa checker.c.
- Qual é o trecho de código que especifica
a textura? Como a textura é especificada?
Dica: Altere as definições das variáveis
c e checkImage no procedimento makeCheckImage.
- Qual é o trecho de código que especifique a forma de
mapeamento de textura? Qual é o modo de
texturização utilizado?
Dicas: Subistitua os valores 1.0 dos quatro
primeiros comandos glTexCoord2f no procedimento
display por outros valores (compare com
o programa chess.c). Para valores maiores
que 1.0, tente ainda alterar o parâmetro
GL_CLAMP para GL_REPEAT (compare com
o programa checker2.c).
Aumente os valores das coordenadas x e z
nos dois últimos comandos glVertex3f
do procedimento display.
- Qual é o comando que habilita o efeito
de texturização?
- Inclua no Makefile os comandos
necessários para gerar o executável do
programa mipmap.c.
- Como são definidos diferentes níveis de
resolução para uma mesma textura?
(Observe que OpenGL/
OpenGL para WNT'95
não impõe que os distintos mapas utilizados em MIP
sejam relacionados. No exemplo, cada mapa corresponde a uma cor.)
- Como é especificada a texturização com
multiresolução?
O que acontecerá se substituirmos
GL_NEAREST_MIPMAP_NEAREST por GL_NEAREST?
Ou por GL_NEAREST_MIPMAP_LINEAR?
Justifique.
- Quando o uso de uma textura com
multiresolução é recomendada?
- O pacote
Mesa/
OpenGL
suporta a geração automática das coordenadas
no espaço de textura para obter a cor de textura a ser aplicada
num ponto do objeto. Isso é
demonstrado no programa texgen.c.
Este programa define um mapa de textura 1D (stripeImage) -
dois texels em vermelho e 30 texels em verde - e associa
a cada coordenada do bule (x,y,z,w) o seguinte texel (coordenada
s):
s = Ax + By + Cz + Dw,
onde A, B, C e D são definidos
pelo vetor sgenparams.
- O que acontecerá se modificarmos a definição
do vetor stripeImage?
- O que acontecerá se modificarmos a definição
do vetor sgenparams?
- O pacote
Mesa/
OpenGL
suporta ainda a geração automática de
coordenadas esféricas dos
mapas. O programa genobjtex.c
demonstra o tal mapeamento
sobre a superfície de um cubo,
sobre uma superfície cilídrica (tecle c alternadamente)
e sobre uma superfície toroidal (tecle t).
Tente executar o programa com as imagens brick.rgb,
reflect.rgb
, girl.rgb e
web.rgb.
- Em qual dos três objetos, o desenho da textura
aparece mais nítido? Justifique.
- Por que ao serem rotacionados parece que a textura
"desliza" sobre os objetos?
- Qual das quatro imagens deu aos objetos uma aparência
mais "metálica"? Justifique.
Observação: O programa genobjtex.c inclui o
arquivo readtex.c.
Programação
- Modifique o programa checker.c, de forma
que com o uso da técnica de multiresolução
seja "atenuado" o problema observado no item 1.2 ao aumentarmos a
profundidade do polígono inclinado.
- Modifique o programa genobjtex.c, de forma
que seja utilizado o padrão de xadrez definido no programa
checker.c para texturizar os três objetos.
- Altere a cena que você gerou na
oitava lista,
adicionando textura à mesa.
Voltar para a lista anterior.
Avançar para a próxima lista.