Quinta Lista - Recortes
Aquecimento
- O pacote Mesa/
OpenGL para WNT'95 estabelece
um volume de visualização através de
seis planos de recorte.
Identifique nas funções glOrtho e
glFrustum (discutidas na
quarta lista )
os argumentos que definem estes planos de
recorte.
- Inclua no Makefile os comandos
necessários para gerar os executáveis dos
seguintes programas adaptados do livro
OpenGL Programming Guide:
- Clip.c
- tea.c
Identifique as funções que estão relacionadas
com o recorte.
- Modifique a definição dos planos de recorte
no programa Clip.c,
- através da alteração dos valores
dos coeficients dos planos de recorte definidos
pelas variáveis eqn e eqn2. Por
exemplo,
eqn[4] = {1.0, 1.0, 1.0, 0.0}; e
- através da inserção e remoção
dos planos de recorte. Por exemplo, remover o plano
de recorte eqn2.
Qual é a função de cada argumento da rotina glClipPlane?
- Inclua no Makefile os comandos
necessários para gerar o executável do programa
oclip.c.
Este programa demonstra recortes de um objeto em movimento por um
plano arbitrário. Pelos efeitos visuais obtidos, qual é
o sistema referencial utilizado para
definir este plano de recorte, em WC (world coordinate system)
ou em VRC (view reference coordinate system)?
- O pacote Mesa/
OpenGL para WNT'95 provê
um buffer denimonado stencil para proteger
o desenho numa área específica da tela. Ele
permite obter alguns efeitos interessantes de recorte bidimensional.
Os programas stenciltst.c e stencil.c
ilustram o uso deste buffer. Identifique nos programas
os trechos de código que
- define uma área de stencil.
Como se altera a forma e a posição
desta área?
- limita o desenho dentro da área de stencil.
O que acontece quando o desenho é maior que a área
de stencil?
- protege desenhos dentro da área de stencil.
Observação: Outra utilidade do buffer de stencil será
apresentada na sétima lista.
Programação
- Modifique o programa oclip.c, de forma
a rotacionar interativamente o plano de recorte. Considere que ao entrar pelo teclado
- x, rotaciona-se no sentido horário em torno de X;
- X, rotaciona-se no sentido anti-horário em torno de X;
- y, rotaciona-se no sentido horário em torno de Y;
- Y, rotaciona-se no sentido anti-horário em torno de Y;
- z, rotaciona-se no sentido horário em torno de Z; e
- Z, rotaciona-se no sentido anti-horário em torno de Z.
- Altere o programa stencil.c de forma
que a esfera azul se afaste da área
de stencil cada vez
que digita D e se aproxime da janela quando digita
A.
Voltar para a lista anterior.
Avançar para a próxima lista.