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.