Computação Gráfica
2019-2020
Abel Gomes Associate Professor
Gab. 3.26, Fase VI
Departamento of Informática
Universidade da Beira Interior
6200-001 Covilhã
PORTUGAL
agomes@di.ubi.pt
tel: +351 275 319 891
fax: +351 275 319 899
AVISOS:
P02: Getting started with OpenGL and GLFW.
--- (Fev. 25, 2019)
T01: Raster imaging.
P01: Getting started with OpenGL and GLFW.
--- (Fev. 19, 2020)
Course starts off. Planning of teaching-learning process.
Goals and Objectives
The general objectives of this course unit are:
- Provide students with programming and rapid prototyping skills of 2D and 3D graphics applications based on a graphic system (e.g., modern OpenGL) and a window system.
- Provide students with the basic skills in programming and geometric modeling of synthetic scenes on computer.
- Provide the students with the essential skills in the generation of images of synthetic scenes in computer, which requires the understanding of the phenomena and interactions between light and the environment that lead to the formation of color.
- Provide students with mathematical skills behind fundamental methods, techniques and algorithms in computer graphics.
- Provide students with the core competencies in event-based programming.
- Develop and code an interactive graphical application in GLUT/OpenGL.
- Model and code a 3D scene through triangle meshes.
- Schedule 3D scene lighting.
- Program the application of textures to geometric models.
- Develop and code a "ray caster".
Theoreticals
- T01 : Raster Graphics
- T02 : Geometry Basics
- T03 : Affine Transformations
- T04 : Windows and Viewports
- ----- : house.zip
- ----- : house4viewports.zip
- T05 : 3D Projections and Scenes
- ----- : cube.zip
- ----- : rotatingcube.zip
- T06 : Color and Perception
- T07 : Color and Imaging
- T08 : Ilummination
- ----- : OpenGL Shading Language Cookbook, Examples of Chapter 2
- T09 : Shading
- T10 : Textures
- ----- : Textures
- ----- : Textures - Ohio
Practicals
- P01 : Getting started with OpenGL and GLFW
- ----- : Introduction to C++
- ----- : Instalação da Linux Bash Shell no Windows 10.
- ----- : Informação complementar para a instalação da Linux Bash Shell no Windows 10.
- P02 : Geometric transformations
- P03 : Animation of 2D objects using affine transformations
- P04 : Building up and visualization of 2D scenes in multiple viewports
- P05 : Building up and visualization of 3D scenes
- ----- : cubeworld.zip
- P06 : Building up and visualization of 3D scenes with illumination
- ----- : teapot.c
- ----- : bolasiluminadas.c
- P07 : Events, menus, text, and synthetic camera
- ----- : mouse.c
- ----- : menu.c
- ----- : bunny.zip
- ----- : camera.zip
- ----- : camera-in-C.zip
- P08 : Rasterization
- P09 : Textures
- ----- : texturemapping.zip
- ----- : pottexture.zip
Bibliography
- J. Foley, A. van Dam, S. Feiner, J. Hughes. Computer Graphics: Principles and Practice (2nd edition in C). Addison-Wesley Publ. Company, 1996.
- D. Salomon. Computer Graphics and Geometric Modeling. Springer-Verlag, 1999.
- J. Gomes e L. Velho. Image Processing for Computer Graphics. Springer-Verlag, 1997.
- R. Wright Jr. e M. Sweet. OpenGL SuperBible.. Waite Group Press, 2000.
- D. Schreiner, M. Woo, J. Neider e T. Davis. OpenGL Programming Guide. Addison-Wesley Publ. Company, 2003.
- D. Schreiner. OpenGL Reference Manual.. Addison-Wesley Professional, 2004.
Assessment
Regras Gerais de Avaliação:
- 1 projecto individual: 11.0 valores (veja-se mais abaixo as datas de entrega).
- 1º teste: 3.0 valores (data: 25 de março de 2019, 18:00, sala 6.03)
- 2º teste: 3.0 valores (data: 29 de abril de 2019, segunda-feira, 18:00, sala 6.03)
- 3º teste: 3.0 valores (data: 27 de maio de 2019, segunda-feira, 18:00, sala 6.03)
- 4º teste de projeto: 8.0 valores (data: 3 de junho de 2019, segunda-feira, 18:00, sala 6.03)
- exame final (qualquer chamada): 9.0 valores (prova escrita) + 11.0 valores (projecto)
Avaliação do Projecto:
- Enunciados entregues na segunda semana de aulas.
- O projecto é em grupo de 3 alunos, mas a avaliação é individual.
- As defesas do projecto decorrerão nas aulas da última semana.
- Não serão aceites projectos fora de prazo (2 de junho de 2019, pelas 23:59).
- O projecto carece de relatório final escrito em Latex
- O relatório final do projecto vale 3 valores em 11.0
- O projecto é entregue em ficheiro .zip, incluindo o relatório final do projecto.
- Cada relatório deverá incluir as tarefas (e sua autoria) concluídas por cada aluno.
- O projecto carece de apresentação final com a presença de todos os alunos da equipa de projeto.
- O projecto desenvolve-se em 3 fases (com avaliação de 11 valores em cada fase):
- --- 1ª fase: 25 de março de 2019 (segunda-feira), 23:59 (entrega do pré-projecto com relatório)
- --- 2ª fase: 29 de abril de 2019 (segunda-feira), 23:59 (entrega do projecto intermédio com relatório)
- --- 3ª fase: 2 de junho de 2019 (domingo), 23:59 (entrega do projecto final com relatório)
Admissão a Exame:
- Todos os alunos estarão admitidos a exame desde que entreguem o projeto.
Projects
- PJ1 : Labirinto: Maze
- --- : Github code for Maze
- --- : Another github code for Maze
- PJ2 : Sistema Solar: Solar System
- --- : Github code for Solar System
- PJ3 : Relógio: Clock
- --- : No github code is for Clock
- PJ4 : Asteróides: Asteroids
- --- : Github code for Asteroids
- PJ5 : Tetris
- --- : Github code for Tetris3D
Project Report Template
Installing Modern OpenGL 3.0+
- Windows : Install Modern OpenGL on Windows
- Mac OSX : Install Modern OpenGL on Mac OS
- Linux : Install Modern OpenGL on Linux
- More tips : More tips about installing modern OpenGL
OpenGL Tutorials
The individual learning work carried out by the student at home should be based on tutorials, in particular the following: Other relevant tutorials can be found at:More Web Info Spots
Instructors
- Abel Gomes (agomes@di.ubi.pt, gab.3.26, DI, Fase 6)
Office hours:
- Wednesday: 11:00-13:00
Grading
Last Update March 2, 2020