Publicação em Diário da República: Despacho n.º 12419/2016 - 14/10/2016
6 ECTS; 2º Ano, 2º Semestre, 45,0 PL + 30,0 TP + 5,0 OT , Cód. 814316.
Docente(s)
- Sandra Maria Gonçalves Vilas Boas Jardim (1)
(1) Docente Responsável
(2) Docente que lecciona
Pré-requisitos
Conhecimentos adquiridos nas UC de Matemática Discreta, Álgebra Linear e Geometria Analítica, Programação e Algoritmia e Linguagens de Programação.
Objetivos
1. Conhecer os mecanismos e técnicas básicas da computação gráfica
2. Aplicar os conceitos de álgebra linear e geometria analítica na definição e construção de aplicações e sistemas gráficos
2.1 Aplicar transformações geométricas a objetos 2D e 3D
2.2 Dominar as projeções de diferentes objetos
3. Construir programas em OpenGL
3.1 Projectar sistemas gráficos 3D e 2D em OpenGL
3.2 Implementar programas com interface gráfica, interatividade e animação
Programa
1. Desenho de formas geométricas
1.1 Rasterização
1.2 Desenho 2D (Linhas, Círculos e Polígonos)
1.3 Algoritmos de preenchimento
2. Transformações geométricas 2D e 3D
2.1 Translação, Rotação e Escala
2.2 Coordenadas Homogéneas
2.3 Composição de Transformações.
3. Modelação Geométrica.
4. Cor, Sombreamento e Iluminação
4.1 Modelos de reflexão local e global
4.2 Raytracing
5. Projeção
5.1 Paradigma da câmara virtual
5.2 Tipos de projeção (paralela, oblíqua).
6. OpenGL API
Metodologia de avaliação
Avaliação por frequência e Avaliação por exame:
Teste escrito - 50%
Trabalho prático final - 50%
Bibliografia
- Akeley, K. e Feiner, S. e Sklar, D. (2013). Computer Graphics: Principles and Practice . (Vol. 1). (pp. 1-1264). USA: Addison-Wesley Professional
- Lengyel, E. (2011). Mathematics for 3D Game Programming and Computer Graphics. (Vol. 1). (pp. 1-576). USA: Cengage Learning PTR
Método de Ensino
As aulas destinam-se à apresentação dos temas e de exemplos práticos de aplicação. Os tópicos principais são explorados através da realização de trabalhos práticos para desenvolver pequenos programas sobre, por exemplo, rasterização 2D e iluminação.
Software utilizado nas aulas
Code Blocks, OpenGL API, ferramentas de produtividade, plataforma de eLearning.