Planeamento

Aulas Laboratoriais

Modelação e Transformações

Introdução ao VRML

Modelação de uma nave espacial recorrendo a formas básicas

Hierarquização dos módulos da nave espacial recorrendo a protótipos

Transformações geométricas

Malhas, Câmara e Animação Básica

Modelação utilizando Malhas Poligonais

Definição de várias câmaras (viewpoints)

Animação de uma câmara rodando em torno de um objecto

Iluminação, Materiais e Texturas

Aplicação de uma textura numa malha poligonal

Aplicação de materiais com diferentes características (metálico, plástico, etc)

Animação de uma luz do tipo pointlight em torno de um objecto

Introdução ao OpenGL/CGLib

Apresentação do trabalho a ser desenvolvido nas próximas aulas

Apresentação da ferramenta de desenvolvimento Visual Studio 2005

Introdução ao OpenGL

Apresentação da arquitectura base para o trabalho - CGLib

Demonstração das funcionalidades da arquitectura

Transformações e Dinâmica

Transformações Rígidas em OpenGL

Modelo Físico (posição + orientação) para controlo dos elementos do jogo

Cálculo vectorial com a biblioteca CGLib

Discussão sobre tempo, transformações e ciclo de simulação na biblioteca CGLib

Primeira avaliação do trabalho desenvolvido

Os alunos foram avaliados nos seguintes pontos:

Colocação de Câmara Ortogonal

Criação de um fundo estrelado

Desenho e controlo de uma nave espacial com o teclado e/ou rato

Implementação da funcionalidade "hiperespaço"

Desenho e animação de três tipos de asteróides (Grandes Médios Pequenos)

Segunda avaliação do trabalho desenvolvido

Os alunos foram avaliados nos seguintes pontos:

Criação de um modelo físico que encapsule todo o comportamento dinâmico das entidades da aplicação

Aplicação do modelo físico às entidades nave e asteróides

Criação de um gestor de asteróides que minimize o número de operações New/Delete a efectuar (com um consequente aumento do desempenho)

Gestor de Partículas e Colisões

Generalização dos gestores de asteróides e de tiros num gestor de partículas

Introdução aos algoritmos de colisão por volume envolvente

Gestão de colisões durante a execução da aplicação

Terceira avaliação do trabalho desenvolvido

Os alunos foram avaliados nos seguintes pontos:

Extensão do modelo físico de modo a incluir a informação de um volume envolvente de colisão

Criação de um gestor de mísseis responsável pelas partículas disparadas da nave

Detecção de colisões entre a nave e os asteróides e ainda entre os misseis e os asteróides e implementação do comportamento adequado a cada situação.

Gestão do Estado da Aplicação

Discussão sobre a gestão de recursos em consequência do estado da aplicação.

Discussão sobre o caso de estudo em curso: "Asteróides" e sugestão de diversos melhoramentos possíveis, que deverão ser efectuados para o último laboratório, nomeadamente ao nível da configurabilidade.

Última avaliação do trabalho desenvolvido

Os alunos foram avaliados nos seguintes pontos:

Implementação de explosões como efeito especial utilizando o conceito de gestor de partículas

Definição da lógica da aplicação através de uma máquina de estados

Contabilização da pontuação e do "número de naves disponíveis" ao longo do jogo

Afinação final do gameplay e do configurabilidade da aplicação

Aulas Teóricas

Apresentação

Apresentação da disciplina, do corpo docente, das regras de funcionamento e de avaliação.

Apresentação de exemplos de trabalhos de Investigação do GAIPS/Inesc-id.

Sistemas Gráficos e Modelos

Aplicações de Computação Gráfica. Um Sistema Gráfico. Criação de Imagens.

Sistemas Gráficos Ie Modelos (cont)

Câmaras Reais e Sintéticas. Interfaces de Programção. Arquitecturas Gráficas. Pipelines Programáveis.

Programação Gráfica

Programação 2D. Sistemas de Coordenadas. API do OpenGL. Primitivas e Atributos.

Programação Gráfica (cont)

Introdução à Cor. Projecções. Interacção com o Sistema de Janelas. Introdução à Remoção de Elementos Ocultos. Fundamentos de Animação

Entrada de Dados e Interacção

Programas sequenciais vs orientados por acontecimentos. Modelo de Entrada de Dados. Árvore de interactores e Sistemas de Janelas.

Entrada de Dados e Interacção (cont)

Sistemas de Gestão de Janelas (em rede - XWindow). Vários tipos de Acontecimentos de entrada. Lista de acontecimentos, Ciclo de acontecimentos e processamento (callbacks/Event handlers). Encaminhamento de acontecimentos para o widget correcto. Métodos para comunicação entre widgets. Modelo de Eventos em OpenGL. Unidades Lógicas de entrada de dados. Widgets em OpenGL. Menu.

CGLib

Apresentação da arquitectura que será usada na segunda parte das aulas teóricas.

Transformações Geométricas

Utilidade das transformações geométricas. Modelos geométricos e hierarquia. Transformações 2D. Matrizes de transformação. Transformações básicas (escala, translação e rotação). Coordenadas homogéneas.

Modelação Geométrica

Introdução à Modelação. Modelos de arame. Modelos de malhas poligonais.

Modelação Geométrica (cont)

Representação de sólidos e volumes. Constructive Solid Geometry. Listas de Desenho em OpenGL.

Pipeline de Visualização 3D

Pipeline de Baixo Nível, Técnicas de Aceleração, Projecções Geométricas Planas, Transformação de Visualização, Transformações de Normalização, Transformação Perspectiva

Recorte

Recorte 2D e 3D. Algoritmo de Cohen-Sutherland. Algoritmo de Recorte Paramétrico (Cyrus-Beck). Algoritmo de Cyrus-Beck. Recorte de Polígonos. Algoritmo de Sutherland - Hodgman.

Discretização

Introdução à Discretização. Discretização de Segmentos de Recta.

Discretização (cont)

Preenchimento de polígonos. Introdução ao Aliasing e antialiasing.

Remoção de Objectos Ocultos

Precisão Imagem. Tipos de Coerência. Cálculo de Faces Traseiras. Algoritmos Z-Buffer e Depth-Sort.

Remoção de Objectos Ocultos (cont)

Precisão Objecto. Algoritmo de Scanline.

Sombreamento

Modelo de Iluminação de Phong. Sombreamento constante. Sombreamento de Gouraud. Sombreamento de Phong.

Cor

Teoria da Cor, Conceitos Básicos. Modelação da Cor. Modelos de Cor.

Cor (cont)

Luz Acromática . Halftoning e Dithering. Reprodução da Cor.

Ray-Tracing

Filosofia do Algoritmo. Cálculo de Intersecções. Interacção da Luz com as Superfícies. Extensão ao Modelo de Iluminação de Phong.

RayTracing (cont)

Determinação de Sombras. O Algoritmo Completo. Estratégias de Optimização. Antialiasing.

Radiosidade

Introdução. Equação da Radiosidade. Factores de forma. Hemicubo. Optimização.

Pipelines Programáveis

Linguagens. Árvores de Sombreamento. Extensão do OpenGL. GLSL (OpenGL Shaeing Language). Vertex Shaders. Fragment Shaders. Linking com programas OpenGL

Pipelines Programáveis (cont)

Movimentar vértices. Sombreamento. Sombreamento baseado em vértices e baseado em quadrículas. Amostragens.