Planeamento
Aulas Teóricas
Apresentação e introdução
Apresentação, programa e funcionamento da disciplina. Introdução a Computação Gráfica.
Enquadramento e Conceitos fundamentais
Conceitos básicos de Computação Gráfica. Modelo Conceptual de um Sistema Gráfico Interactivo. Dispositivos de Saída. Os primeiros 40 anos de CG. Vídeos exemplificativos.
Introdução ao OpenGL
Introdução às APIs Gráficas. Bibliotecas OpenGL. Estrutura do OpenGL. Compreender OpenGL. Desenhar objectos geoométricos.
Matemática para CG
Escalares, pontos e vectores. Espaço cartesiano e espaço vectorial. Trigonometria. Matrizes.
Transformações Geométricas (I)
Transformações geométricas planas elementares. Transformações no espaço homogéneo.
Transformações Geométricas (II)
Transformações em 3D.Composição de transformações geométricas. Matriz de transformação composta
Transformações Geométricas (III)
Matriz de transformação composta. Grafo de cena. Pilhas de Matrizes em OpenGL.
Câmara Virtual: Visualização
Visualização clássica. Visualização 3D. Câmara Virtual Simples.
Câmara Virtual: Visualização
Cálculo da Matriz de Visualização. Funcionamento do comando gluLookAt.
Câmara Virtual: Projecção
Manipulação de matrizes (ordem, modos, pilha, etc...). Visualização e projecção em OpenGL. Back-face culling.
Recorte
Recorte em 2D. Recorte de linhas: algoritmos paramétricos de Cyrus-Beck e Liang-Barsky. Recorte de Polígonos: algoritmo de Sutherland-Hodgman. Recorte em 3D.
Iluminação
Cálculo da Iluminação. Modelo de Phong e Blinn-Phong.
Iluminação e Sombreamento
Luz e materiais em OpenGL. Sombreamento Constante. Sombreamento de Gouraud. Sombreamento de Phong.
Mapeamento em Viewport e Transformação Janela-Viewport
Mapeamento em coordenadas de viewport, no âmbito do pipeline de visualização 3D. Transformação janela-viewport no contexto da visualização 2D. Operações janela-viewport.
Discretização
Discretização de segmentos de recta. Preenchimento de polígonos.
Remoção de Superfícies Ocultas
Algoritmo de ordenação em profundidade. Algoritmo do pintor. Algoritmo de Z-Buffer.
Operações sobre Fragmentos: Buffers
Buffer OpenGL.
Operações sobre Fragmentos: Mapeamento de texturas
Introdução ao mapeamento de texturas. Mapeamento de texturas 2D. Mapeamento de Texturas em OpenGL.
Sistemas de Partículas e Colisões
Introdução aos sistemas de partículas e colisões.
Ray-Tracing
Algoritmo de Ray-Tracing. Cálculo de intersecções em Ray-Tracing. Interacção da luz com superfícies em Ray-Tracing. Estratégias de optimização do algoritmo de Ray-Tracing.
Cor
Teoria da cor. Modelação da cor. Modelos de Cor. Reprodução da cor.
Formatos de Imagem
Generalidades sobre formatos de imagem. Formatos PBM, DIB (BMP), GIF, PNG, JFIF (JPEG). Considerações sobre uso de diferentes formatos.
Pipelines Programáveis
Linguagens. Árvores de Sombreamento. Extensão do OpenGL. GLSL (OpenGL Shaeing Language). Vertex Shaders. Fragment Shaders. Linking com programas OpenGL
Aulas Laboratoriais
Introdução ao OpenGL
Introdução aos conceitos básicos do OpenGL.
Exercícios básicos de modelação, janela e viewport.
Cena Simples Estática
Modelação de labirinto com geometria simples.
Câmara fixa com projecção ortogonal.
Cena Simples Interactiva
Modelação do Pac-Man.
Controlo do movimento do Pac-Man com o teclado.
1ª Avaliação
Avaliação.
Cena Simples Interactiva com Câmara Móvel
Modelação dos "fantasmas" inimigos do Pac-Man.
Câmara móvel que acompanha o movimento do Pac-Man (projecção perspectiva).
Detecção das intersecções com as paredes do labirinto.
2ª Avaliação
Avaliação.
Cena Interactiva com Materiais e Luzes
Iluminação global e materiais para o labirinto.
Materiais para o Pac-Man e "fantasmas" inimigos.
Detecção da passagem do Pac-Man pelas esferas que são eliminadas.
3ª Avaliação
Avaliação.
Cena Interactiva com Luzes Dinâmicas
HUD simples com pontuação e número de vidas.
Iluminação "nocturna" e foco de luz que acompanha o Pac-Man.
Movimentos aleatórios para os "fantasmas" inimigos.
4ª Avaliação
Avaliação.
Cena Interactiva com Colisões
Detecção de colisões entre o Pac-Man e os "fantasmas" inimigos.
Sistema de partículas que "pulveriza" o Pac-Man quando é eliminado pelos inimigos.
Colocação de texturas no labirinto.
5ª Avaliação
Avaliação.