Quarta Lista - Transformações para Visualização
Aquecimento
- Inclua no Makefile os comandos
necessários para gerar os executáveis dos
seguintes programas adaptados do livro
OpenGL Programming Guide:
- disk.c
- aim.c
- 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?
- 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.
- Modifique nos programas
- disk.c
- 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.
- 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?
- 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.
- 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
- Utilize a rotina glFrustum para implementar uma função
equivalente à oferecida pela rotina gluPerspective.
- 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.
- 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.
Contribuições dos seus colegas ...
- 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.