Trabalhos e Leituras Recomendadas
TrabalhosTrabalho Complementar No 1 (Uma Câmera em 1a Pessoa)
Data de Divulgação: 14/03/2011
Data para Entrega : 28/03/2011 às 13:30Trata-se de um exercício bastante simples para familiarizá-lo com o ambiente de programação que usaremos na disciplina (Visual C++/Dec C++, OpenGL e GLUT). Por outro lado, o código disponibilizado para o exercício provê uma interface para controle de câmera sintética que será útil no desenvolvimento de trabalhos futuros.
Etapas para completar o trabalho:
1) Download os arquivo INF01009_Trabalho_Complementar_1_camera.zip e estude o código fonte (ele contém inúmeros comentários);
2) Crie um projeto usando Visual C++, Dev C++, gcc, etc., compile e execute o programa. Não esqueça de incluir no projeto as bilbiotecas de OpenGL e GLUT, necessárias a ligação do programa;
3) Modifique o programa para exibir os seguintes objetos: teapot (quando pressionadas as teclas "T" ou "t"), Esfera (quando pressionadas as teclas "E" ou "e") e Torus (quando pressionadas as teclas "R" ou "r");
Para entrega do trabalho, perpare uma página web no domínio www.inf.ufrg.br/~<seu login>/INF01009 e coloque lá um pequeno relatório ilustrado mostrando os resultados obtidos com a execução do trabalho.
Trabalho Complementar No 2 (Visualizador para operações realizadas sobre o plano projetivo)
Data de Divulgação: 28/03/2011
Dada a representação de dois points em coordenadas homogêneas P1 = (x1, y1, 1) e P2 = (x2, y2, 1), a equação da reta que passa por P1 e P2 pode ser encontrada calculando-se o produto vetorial P1 x P2. Por sua vez, dadas duas retas no plano, expressas pelas equações cujos coeficientes (ax + by + c = 0) são R1 = (a1, b1, c1) e R2 = (a2, b2, c2), o ponto de intersecção entre elas pode ser obtido por meio do produto vetorial R1 x R2, seguido pela divisão por w (coordenada homogênea). Estes resultados decorrem da dualidade entre reta e ponto no espaço projetivo.
Data para Entrega : 11/04/2011
Neste trabalho, você implementará um programa para visualizar estes resultados, visando desenvolver intuição/interpretação geométrica para estes resultados. Como o produto vetorial de dois vetores linearmente independentes produz um vetor perpendicular a estes (i.e., vetor normal ao plano definido pelos dois vetores originais), visualize e interprete os resultados acima tanto no espaço vetorial R3, bem como no plano projetivo. De posse do seu visualizador, remova a restrição de que w = 1 para P1 e P2 (pontos que determinam R1) e para P3 e P4 (pontos que determinam R2). Explique o que está acontecendo.
Trabalho Complementar No 3 (Rotações Utilizando Quaternions)
Tarefa Opcional para alunos matriculados em INF01009
Data de Divulgação: 11/04/2011
Data para Entrega : 25/04/2011A partir da representação matricial derivada em sala, utilize quaternions para realizar rotações de ângulos arbitrários em torno de eixos arbitrários em 3D. Para tanto, utilize uma das seguintes opções:
1) Modifique a aplicação referente ao Trabalho Complementar No 1;
ou
2) Implemente um visualizador para ilustrar rotações de vetores em 3D em torno de eixos arbitrários.
Trabalho de Implementação No 1
- Renderizando modelos geométricos arbitrários (malhas triangulares) no centro da janela
- Realizando translações e rotações de câmera ao redor de seus eixos
- Explorando cores em OpenGL
- Explorando o relacionamento entre near e far clipping planes e o efeito na resolução do buffer de profundidade
- Utilizando uma GUI (Graphics User Interface)
- Renderizando modelos cujos vértices encontram-se orientados nos sentidos horário e anti-horárioData de Divulgação: 25/04/2011
Data para Entrega : 09/05/2011Arquivos de teste: cubo e vaca.
Trabalho de Implementação No 2
- Implementação do pipeline gráfico (transformação para o Sistema de Referência da Câmera e Projeção)
Data de Divulgação: 09/05/2011
Data para Entrega : 23/05/2011Descrição do Trabalho
Arquivos de teste: os mesmo que do trabalho No 1
Trabalho de Implementação No 3
- Implementação de Rasterização
Data de Divulgação: 30/05/2011
Data para Entrega : 21/06/2011Descrição do Trabalho
Arquivos de teste: cubo_com textura vaca sem textura textura xadrez textura mandrill
Leituras
- Leia o Capítulo 1 do Livro Vermelho de OpenGL Red Book.
- Leia o Capítulo 2 do Livro Vermelho de OpenGL Red Book.
- Leia a Seção 5.6 (Drawing 3D Scenes with OpenGL) do Livro Computer Graphics Using OpengGL.
Leia o Capítulo 7 (Three-Dimensional Viewing) do livro Computer Graphics Using OpengGL.- Leia o Capítulo 8 (Rendering Faces for Visual Realism) do livro Computer Graphics Using OpengGL.
Leia as Seções 13.1 a 13.3 (páginas 699-713) sobre eliminação de superfícies ocultas, do livro Computer Graphics Using OpengGL.