Quarta Lista - Transformações para Visualização


Aquecimento

  1. Inclua no Makefile os comandos necessários para gerar os executáveis dos seguintes programas adaptados do livro OpenGL Programming Guide:
    1. disk.c
    2. aim.c
  2. A rotina glOrtho do programa disk.c e a rotina gluOrtho2D do programa smooth.c fazem projeções ortogonais. A única diferença reside na normalização da coordenada z para o intervalo [-1,1] em uma delas. Qual delas?
  3. A rotina glFrustum do programa cube.c e a rotina gluPerspective do programa aim.c fazem projeções perspectivas sobre planos. Compare e estabeleça a correspondência entre a lista de argumentos das duas rotinas.
  4. Modifique nos programas
    1. disk.c
    2. aim.c
    os valores dos argumentos w e h da função glViewport. Por exemplo,
    glViewport(0, 0, w/2, h) e
    glViewport(0, 0, w, h/2). Justifique os resultados visuais obtidos.
  5. Modifique no programa aim.c o valor do argumento theta da função gluPerspective. Por exemplo,
    gluPerspective(theata/10, (GLfloat) w/(GLfloat) h, 1.0, 20.0) e
    gluPerspective(10*theata, (GLfloat) w/(GLfloat) h, 1.0, 20.0).
    Justifique os resultados visuais obtidos. Como se pode estimar um valor razoável para theta a partir da distância do observador e da altura da janela?
  6. Modifique no programa cube.c os valores dos argumentos left, right, top e bottom (os quatro primeiros argumentos) da função glFrustum. Observe que é possível definir janelas assimétricas em relação ao eixo do observador. É possível obter este mesmo efeito com a função gluPerspective? Justique.
  7. Inclua no Makefile os comandos necessários para gerar o executável do programa gears.c. Neste programa os efeitos de "movimento" são decorrentes de transformações geométricas e de visualização. Classifique os movimentos quanto às transformações utilizadas.

Programação

  1. Utilize a rotina glFrustum para implementar uma função equivalente à oferecida pela rotina gluPerspective.
  2. A rotina glFrustum considera que a origem do sistema de referência da cena coincida com a posição da câmera e que a orientação da câmera (VUP) seja a mesma do eixo y. Se este não for o caso, quais transformações devem ser feitas antes de utilizarmos as funções de projeção do Mesa/ OpenGL para WNT'95? Implemente um programa que aceita posições aleatórias da câmera.
    Dica: Consulte a seção 6.5 do livro Computer Graphics: Principles and Practice.
  3. Gere para a cena que vocês criaram em conjunto na primeira lista uma vista perspectiva com 1 ponto de fuga, uma com 2 pontos de fuga e uma com 3 pontos de fuga. Explique como você obteve cada vista.
    Dica: Consulte a seção 3-15 do livro Mathematical Elements for Computer Graphics.

  4. Contribuições dos seus colegas ...

    1. Roseane Marcílio de Freitas" (1o Semestre de 2000):
      Curiosidades
      "Por favor, dê uma olhadinha na figura. Além de interessante ela utiliza as técnicas de perspectivas????"
    Voltar para a lista anterior.
    Avançar para a próxima lista.