Quinta Lista - Recortes


Aquecimento

  1. 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.
  2. Inclua no Makefile os comandos necessários para gerar os executáveis dos seguintes programas adaptados do livro OpenGL Programming Guide:
    1. Clip.c
    2. tea.c
    Identifique as funções que estão relacionadas com o recorte.
  3. Modifique a definição dos planos de recorte no programa Clip.c,
    1. 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
    2. 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?
  4. 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)?
  5. 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
    1. define uma área de stencil. Como se altera a forma e a posição desta área?
    2. limita o desenho dentro da área de stencil. O que acontece quando o desenho é maior que a área de stencil?
    3. protege desenhos dentro da área de stencil.
    Observação: Outra utilidade do buffer de stencil será apresentada na sétima lista.

Programação

  1. Modifique o programa oclip.c, de forma a rotacionar interativamente o plano de recorte. Considere que ao entrar pelo teclado
  2. 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.

  3. Voltar para a lista anterior.
    Avançar para a próxima lista.