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 Components

The assessment consists of two components: the laboratory component and the theoretical-practical component.

Laboratory component and frequency

The laboratory component consists of three projects, carried out in groups of two students from the same la session. The projects, classified in the range of 0 to 20 values, will be discussed individually. A student''s grade in a project depends on the project he has delivered (done in a group), his performance in the discussion and the performance of his group colleague in the discussion, if their performances are significantly unbalanced.

The laboratory component grade (CompL) is the average of the student''s grades in the three assignments (P1, P2 and P3):

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

To obtain frequency, it is necessary to meet the following conditions:

  • attend a minimum of 50% of the classes on your lab session
  • CompL> = 9.5.

The discussions of the projects will be carried out at the end of the semester, only with students who can obtain frequency.

Theoretical-Practical Component

The theoretical-practical component consists of two tests (in the period of classes) or an exam. The three tests are individual, written and without consultation. Electronic devices (e.g. calculators, mobile phones, smartwatches and laptops) are not allowed.

There is pre-registration in the tests.

The grade of the theoretical-practical component (CompTP) is the simple arithmetic average of the test scores (T1 and T2) or the exam score (Ex):

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

To obtain approval, CompTP> = 8.0 is required.

Final grade

The final grade (F) of students is:

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

All grades (P1, P2, P3, T1, T2, Ex, CompL and CompTP) are rounded to one decimal, except for the final grade (F) which is rounded to the nearest integer.

Laboratory Component Classifications Obtained in 2018/19 or 2019/20

Being the first time that the course has frequency, it was decided to automatically assign frequency, to students who obtained a grade in the laboratory component in the academic years 2018/19 or 2019/20 not less than 9.5.

Students with a classification of the laboratory component below 9.5, obtained in these academic years, will still be able to maintain their grade, as long as they express this desire to the teacher.

Laboratory Component Classifications Obtained in Other Years

All laboratory component grades expire and students must complete all assessment components.

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: