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 - 67

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)

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

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

Componentes da Avaliação

A avaliação é constituída por duas componentes: a componente laboratorial e a componente teórico-prática.

Componente Laboratorial e Frequência

A componente laboratorial é composta por três trabalhos, realizados em grupo de dois alunos dum mesmo turno prático.  Os trabalhos, classificados no intervalo de 0 a 20 valores, serão discutidos individualmente. A nota de um aluno num trabalho depende do trabalho que entregou (realizado em grupo), do seu desempenho na discussão e do desempenho do seu colega de grupo na discussão, caso os desempenhos de ambos sejam significativamente desequilibrados.

A nota da componente laboratorial (CompL) é a média das notas do aluno nos três trabalhos (P1, P2 e P3):

CompL = (P1 + P2 + P3) / 3.

Para obter frequência, é necessário reunir as seguintes condições:

  • frequentar um mínimo de 50% das aulas do seu turno
  • CompL >= 9.5 .

As discussões dos trabalhos serão efetuadas no fim do semestre, apenas com os alunos que puderem ter frequência.

Componente Teórico-Prática

A componente teórico-prática é composta por dois testes (no período de aulas) ou por um exame (na Época de Recurso). As três provas são individuais, escritas e sem consulta. Não são permitidos dispositivos eletrónicos (e.g. calculadoras, telemóveis, smartwatches e portáteis).

Há pré-inscrição nos testes.

A nota da componente teórico-prática (CompTP) é a média aritmética simples das notas dos testes (T1 e T2) ou a nota do exame (Ex):

CompTP = ( T1 + T2 ) / 2   ou   CompTP = Ex.

Para obter aprovação, é necessário que CompTP >= 8.0 .

Nota Final

A nota final (F) dos alunos com frequência é:

  • F = CompTP,   se CompTP < 8.0;
  • F = 0.3 CompL + 0.7 CompTP,   se CompTP >= 8.0 .

Todas as notas (P1, P2, P3, T1, T2, Ex, CompL e CompTP) são arredondadas às décimas, exceto a nota final (F) que é arredondada às unidades.

Classificações da Componente Laboratorial Obtidas em 2018/19 ou 2019/20

Sendo a primeira vez que a unidade curricular tem frequência, decidiu-se atribuir frequência, de forma automática, aos alunos que tenham obtido nota na componente laboratorial nos anos letivos 2018/19 ou 2019/20 não inferior a 9.5 .

Os alunos com uma classificação da componente laboratorial inferior a 9,5, obtida nestes anos letivos, poderão ainda assim manter a sua nota, desde que manifestem essa vontade ao regente.

Classificações da Componente Laboratorial Obtidas em outros anos

Todas as notas da componente laboratorial perdem a validade e os alunos terão que realizar todas as componentes de avaliação.

Conteúdo

  1. Modelação
    • Primitivas
    • Grafos de cena
  2. Projeções Geométricas
    • Paralela
    • 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
    • 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: