Sétima Lista - Visibilidade
Aquecimento
- Inclua no Makefile os comandos
necessários para gerar o
executável do programa planes.c.
- Qual é o papel do argumento GL_DEPTH_BUFFER_BIT
da função glClear?
- Qual é o papel do argumento GL_DEPTH_TEST
da função glEnable? O que
acontecerá se removermos este comando?
- Modifique o argumento da função glDepthFunc
para GL_NEVER, GL_ALWAYS, GL_LEQUAL,
GL_EQUAL, GL_GEQUAL, GL_GREATER e
GL_NOTEQUAL. Compare os resultados obtidos.
- Qual das funções corresponde ao algoritmo
z-Buffer?
- Qual delas corresponde ao algoritmo de pintor?
- Inclua no Makefile os comandos
necessários para gerar o executáveis do
programa triangles.c implementado pelo
Marcelo.
Modifique o argumento da função glDepthFunc
e compare os resultados em relação ao programa
anterior.
- O pacote Mesa
provê
explicitamente mecanismos para remover superfícies
escondidas. O efeito de remoção de linhas escondidas
pode ser obtido com o uso do stencil buffer como
demonstram os programas
ohidden.c e
hidline.c. Execute
os programas e responda as seguintes perguntas.
- Por que o contorno de cada polígono foi
desenhado duas vezes?
- Para que serve o trecho de código que
desenha o interior de cada polígono?
- Ao invés de utilizar o stencil buffer,
obteremos o mesmo resultado visual se utilizarmos
o algoritmo de z-buffer colorindo as faces
com a cor do fundo? Justifique.
Dica: Executar o programa hidline2.c
implementado pelo
Marcelo.
Programação
- Modifique o programa hidplanes.c, implementado
pelo Marcelo,
de forma
a desenhar corretamente a sequêcia das regiões
dos planos, utilizando
a estrutura BSP para ordenação e o algoritmo de
pintor para desenhar.
- Altere a cena que você gerou na
quarta lista, de forma que
seja desenhada uma cena em wireframe com linhas escondidas.
Voltar para a lista anterior.
Avançar para a próxima lista.