Computer Graphics and Interfaces



  • To describe the graphics pipeline and to identify their implications.
  • To list and describe the basic techniques for modelling based on polygons and attributes of vertices.
  • To know the illumination models and shading techniques designed for graphics systems based on polygon''s rasterization.
  • To identify the basic principles in building the user interface.


  • The student should be able to use a modern API to create a graphical application that can be integrated with applications from any other kind.
  • The student should manage to translate the principles of design of a GUI into an efficient implementation and actual applicability.


  • Ability for modelling and abstraction.
  • Theoretical assessment of the efficiency of a solution.
  • Drafting and following an experimental protocol for evaluation of a solution.

General characterization





Responsible teacher

Fernando Pedro Reino da Silva Birra, Nuno Manuel Robalo Correia


Weekly - 5

Total - 67

Teaching language



Good programming skills in one of the following languages: Javascript, C/C++ or Java

Basic knowledge of linear algebra and geometry


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)

Teaching method

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.

Evaluation method

Evaluation method in 2019/2020

Each of the three projects has a weight of 10% in the final grade. During the continuous evaluation period, there are two written tests, each with a weight of 35%.

To pass, the final grade needs to be at least 9.5 (out of 20) and the mean grade of the two written tests is 8.0. Final grades are rounded to the unit. 

During the final examination season, the written exam replaces the two written tests.

Scores achieved in the projects of the last two lective years are valid in a all or nothing setting. It is not possible to improve individual project grades.

Subject matter

  1. Modeling:
    • Primitives
    • Surfaces
    • Scene graphs
  2. Geometric projections:
    • Parallel
    • Perspective
  3. Other essential transformations in the graphics pipeline:
    • Window-viewport transformation 
    • Clipping 
    • HLHSR 
  4. Event-driven programming
  5. Computer animation in real time
  6. Introduction to color models and illumination models 
  7. Generation and application of texture mapping:
    • Digital images
    • procedural methods
  8. Interaction:
    • Models
    • Styles 
    • Screen design 
    • Contexts 
  9. User interface techniques:
    • 2D/3D metaphors 
    • Physical devices 
    • Control 
    • Feedback 
    • Visualization 
    • Navigation and manipulation 
  10. WebGL Programming


Programs where the course is taught: