Trabalhos e Leituras Recomendadas
TrabalhosTrabalho Complementar No 1 (Uma Câmera em 1a Pessoa)
Data de Divulgação: 05/03/2008
Data para Entrega : 12/03/2008 à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 (Point Sprites)
Data de Divulgação: 12/03/2008
Data para Entrega : 19/03/2008 às 13:30Neste 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;
Para entrega do trabalho, coloque um pequeno relatório ilustrado na sua página de trabalhos da disciplina.
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
Trabalho Complementar No 3 (Visualizador para operações realizadas sobre o plano projetivo)
Data de Divulgação: 19/03/2008
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 : 02/04/2008
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 2.0 e realize as seguintes tarefas:
Instale o programa e estude a documentação;
Execute os tutoriais do XNA.
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árioData de Divulgação: 07/04/2008
Data para Entrega : 16/04/2008Arquivos 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: 16/04/2008
Data para Entrega : 30/04/2008Descriçã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/04/2008
Data para Entrega : 02/06/2008Descriçã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.