Computação Gráfica e Interfaces

Objectivos

Saber

  • Descrever o pipeline gráfico e identificar as respetivas implicações.
  • Enumerar e descrever as técnicas básicas para modelação baseada em polígonos e atributos de vértices.
  • Conhecer os modelos de iluminação e técnicas de sombreamento para sistemas gráficos baseados em rasterização de polígonos.
  • Identificar os princípios de base na construção da interface com o utilizador.

Saber Fazer

  • O aluno deverá ser capaz de usar uma API moderna para criar uma aplicação gráfica que possa ser integrada com aplicações de qualquer outro tipo.
  • O aluno conseguirá traduzir os princípios de conceção duma interface gráfica com o utilizador numa implementação eficiente e com aplicabilidade real.

Competências Complementares

  • Capacidade de modelação e abstração.
  • Avaliação teórica da eficiência de uma solução. 
  • Elaboração e seguimento de um protocolo experimental para avaliação de uma solução. 

Caracterização geral

Código

8150

Créditos

6.0

Professor responsável

Fernando Pedro Reino da Silva Birra, Nuno Manuel Robalo Correia

Horas

Semanais - 5

Totais - 72

Idioma de ensino

Português

Pré-requisitos

Bons conhecimentos de programação numa das seguintes linguagens: Javascript, C/C++ ou Java

Conhecimentos básicos de álgebra linear e de geometria

Bibliografia

• Edward Angel and Dave Shreiner, "Interactive Computer Graphics, A Top-Down Approach with WebGL", Seventh Edition, Addison-Wesley 2015

• João M. Pereira, João Brisson, António Coelho, Alfredo Ferreira e Mário Rui Gomes, "Introdução à Computação Gráfica", FCA Editora, 2018

• John F. Hughes, Andries van Dam, Morgan McGuire, David Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley, "Computer Graphics: Principles and Practice", 3rd Edition, Addison-Wesley Professional (2013)

• J.D. Foley, A. van Dam, S.K. Feiner, J.F. Hughes, "Computer Graphics - Principles and Practice", 2nd edition in C, Addison-Wesley (1996)

• Alan Dix, Janet Finlay, Gregory Abowd, Russell Beale, "Human-Computer Interaction", 3rd edition, Prentice Hall (2004)

Método de ensino

O ensino é baseado em aulas teóricas mas com uma forte ligação a uma componente experimental de laboratório onde os conceitos apreendidos são aplicados em variados programas. Nas aulas teóricas são ainda usados programas ilustrativos de concretização da matéria. Os conceitos são comunicados numa abordagem top-down que parte das aplicações de exemplo e desce até à implementação dos sistemas gráficos e dos algoritmos que os suportam.

Método de avaliação

Método de avaliação em 2019/2020:

  • A cada aluno será atribuída uma nota individual resultante da avaliação de três projetos de programação e, em avaliação contínua, de dois testes intermédios. Este procedimento irá substituir o exame final escrito em caso de aprovação.
  • Cada projeto vale 10% da nota final e é realizado em grupos de 2 alunos de um mesmo turno. A entrega do trabalho de um projeto só é válida se o aluno tiver frequentado pelo menos 50% das respetivas aulas práticas. Para permitir um acompanhamento do trabalho alternativo ao presencial, um aluno com o estatuto de trabalhador-estudante precisará de contatar o docente do seu turno logo no início de cada projeto.
  • Em avaliação contínua, que não pode ser utilizada para melhoria de nota, o primeiro teste intermédio vale 35% da nota final e o segundo 35%, mas exige-se uma média dos dois testes de pelo menos 8,0 valores (em 20), caso contrário a nota final será a média daqueles testes. 
  • Para aprovação, a classificação final mínima é de 9,5 valores (em 20).
  • Na época de recurso, a que todos os alunos inscritos podem ter acesso direto para obtenção de aprovação, a nota combinada dos dois testes da avaliação contínua é substituída pela nota do exame escrito, pelo que esta vale assim 70% da nota final. Para os alunos com nota inferior a 8,0 valores (em 20) no exame escrito, a nota final será exclusivamente a nota do exame arredondada às unidades.

Alunos com c/nota nos trabalhos obtida em 2018/2019 e 2017/2018:

  • Os alunos a quem, nos ano letivos de 2018/2019 ou de 2017/2018, tenha sido atribuída nota a, pelo menos, um dos projetos, manterão a nota da componente prática, não sendo necessária a sua inscrição em qualquer turno prático. Caso se inscrevam num turno prático perderão a nota obtida anteriormente, ficando assim nas mesmas condições que qualquer outro aluno inscrito na disciplina pela primeira vez. Este procedimento torna-se efetivo às 23h50 de 15 de Setembro de 2019.
  • Todos os alunos com frequências obtidas em anos anteriores aos referidos estão em igualdade de circunstância com os alunos de 1ª inscrição, devendo inscrever-se num turno prático.
  • Os alunos poderão consultar no clip, na secção Documentação de Apoio -> Outros, a sua situação relativa à nota prática obtida nas duas últimas ediçõesr.

Conteúdo

1. Modelação
:
- Primitivas
- 
Superfícies

- Grafos de cena

2. Projeções geométricas:
- Proj. Paralela e Perspetiva
3. Outras transformações essenciais no pipeline gráfico:
- Enquadramento janela-visor
- Recorte 
- Remoção de partes ocultas

4. Programação por eventos

5. Animação gráfica em tempo real

6. Introdução aos modelos de cor e de iluminação 
7. Geração e aplicação de texturas por mapeamento:
- Imagens digitais e métodos procedimentais

8. Interação:
- 
Modelos

- Estilos

- Design do ecrã

- Contextos

9. Técnicas de interface com o utilizador
:
- Metáforas 2D/3D

- Dispositivos físicos
- 
Controlo
- 
Feedback

- Visualização
- 
Navegação e Manipulação


10. Programação em WebGL

Cursos

Cursos onde a unidade curricular é leccionada: