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

Trabalhos e Leituras Recomendadas

 
Trabalhos

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

    Data de Divulgação: 05/03/2007
    Data para Entrega  : 12/03/2007 à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 (Point Sprites)

    Data de Divulgação: 12/03/2007
    Data para Entrega  : 19/03/2007 às 13:30

     Neste trabalho é pedido que você converta um programa em OpenGL cuja interface com o usuário foi cencebida como uma aplicação Windows
  para uma interface baseada em GLUT. Ao estudar o código, você aprenderá a trabalhar com point sprites, uma ferramenta bastante útil para criação de sistemas de partículas.

Etapas para completar o trabalho:

1) Download os arquivo INF01009_Trabalho_Complementar_2_point_sprites.zip e analise o código fonte;
2)
Crie um projeto usando Visual C++, Dev C++, etc. compile e execute o programa. Para o programa poder compilar, é necessário que você copie o arquivo de cabeçalho glext.h de extensões OpenGL para o diretório "include/GL" do seu ambiente de programação.
3) Modifique o programa para utilizar GLUT ao invés da interface baseada em programação para Windows
;
4) Estude o funcionamento dos point sprites

Para entrega do trabalho, coloque um pequeno relatório ilustrado na sua página de trabalhos da disciplina.

Trabalho Complementar No 3 (Visualizador para operações realizadas sobre o plano projetivo)

    Data de Divulgação: 19/03/2007
    Data para Entrega  : 02/04/2007 às 13:30

<>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.

Preparação para os Projetos Finais

    Baixe o Microsoft XNA Game Studio Express 1.0  e realize as seguintes tarefas:

    Instale o programa e estude a documentação: Semana de 9 a 14 de abril (não haverá aulas nesta semana);
    Execute os tutoriais do XNA: Semanas de 23/4 a 2/5 (não haverá aulas nestas semanas).


Tutorial preparado pelo Daniel Eugênio Kuck sobre como executar XNA  Game Studio Express quando a sua placa gráfica não suporta shader model 1.1 ou superior (uso do Reference Rasterizer
para remulação em software via Direct 3D)
   

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:  19/03/2007
     Data para Entrega  :  02/04/2007 

      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: 02/04/2007   
     Data para Entrega  : 18/04/2007   

      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:  18/04/2007
     Data para Entrega  :  16/05/2007

      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.

Volta à Página Principal