INF01009 / CMP143 – Computação Gráfica
Semestre 2011/1

Trabalhos e Leituras Recomendadas

 
Trabalhos

Trabalho Complementar No 1 (Uma Câmera em 1a Pessoa)

    Data de Divulgação: 14/03/2011
    Data para Entrega  : 28/03/2011 às 13:30

     Trata-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
    Data para Entrega  :    11/04/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.

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/2011

A 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ário

     Data de Divulgação:  25/04/2011
     Data para Entrega  :   09/05/2011

      Descrição do Trabalho

                   Arquivos 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/2011

      Descriçã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/2011  

      Descriçã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.