Credits
6
Types
Specialization compulsory (Computer Graphics and Virtual Reality)
Requirements
This subject has not requirements
, but it has got previous capacities
Department
CS
Teachers
Person in charge
- Oscar Argudo Medrano ( oargudo@cs.upc.edu )
Others
- Imanol Muñoz Pandiella ( imanolm@cs.upc.edu )
- Marta Fairen Gonzalez ( mfairen@cs.upc.edu )
- Pere Pau Vázquez Alcocer ( ppau@cs.upc.edu )
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0.5
Autonomous learning
8.3
Competences
Computer graphics and virtual reality
Advanced computing
Generic
Information literacy
Appropiate attitude towards work
Basic
Objectives
-
Get current graphics hardware and the development of GPU programming paradigms.
Related competences: CEE1.1, CEE1.2, CEE1.3, CB6,
Subcompetences- Learning the architecture of programmable GPUs.
- Knowing different languages ​​for developing applications for GPUs.
-
Understand the problems and limitations of developing graphical applications in real time.
Related competences: CEE1.1, CEE1.2, CEE1.3, CEE3.1,
Subcompetences- Understanding the flow of data on GPUs.
- Knowing the different programmable pipeline stages.
- Learning to use the graphics pipeline for making general calculations.
-
Learn how to develop computer graphics applications for GPUs.
Related competences: CG1, CG3, CTR4,
Subcompetences- Learning to program in GLSL. Language specification and integration with OpenGL.
-
Learning the state of the art in algorithms to generate advanced shadows.
Related competences: CB7, CTR4, CTR5,
Subcompetences- Learning algorithms for generating hard shadows, ambient occlusion and shadows generation.
- Implementations of the algorithms on the GPU shadows.
-
Learn techniques for accelerating scene rendering by geometry processing.
Related competences: CEE1.2, CTR4, CTR5,
Subcompetences- Visibility calculation. Primitive sorting. Batches.
-
Learning image-based rendering algorithms.
Related competences: CEE1.1, CG3, CEE1.2, CEE1.3, CEE3.1,
Subcompetences- Light Fields. Layered Depth Images. Relief Impostors.
Contents
-
Introduction to graphics hardware.
The aim of this section is to present the graphics software and its evolution over the years. We present the fixed pipeline of OpenGL programmable pipeline and analyzing the flow of information and data sources available. We also introduce generic algorithms accelerated by GPU computing. -
Introduction to GPU programming languages.
In this section we discuss Cg and GLSL, as well as introduced CUDA and OpenCL. GLSL and deepen all the different elements of the programming: types, data structures, control structures, subprograms and library definition. -
GPU-aided geometry processing.
The accurate real-time rendering acceleration painting process from the point of view of geometry and illumination. As the scenes of today are very complex algorithms needed to process them efficiently. In this section we discuss the geometry processing using different aspects of GPUs, such as the calculation of visibility, restructuring primitives and grouping of primitives. -
Shadow generation.
An important element in the perception of the realism of a scene is to display shadows. Over time, the algorithms have been refined display of shadows, moving shadows "hard" to shadows, to the generation of so-called ambient lighting. In this section we review the evolution and discuss the various methods of generating shadows using GPU. -
Accelerated rendering using images.
With the appearance of textures to the GPU, there have been many improvements in painting realistic attempting to use this element to improve the result. Initially, only to replace color, later, to simulate details of the geometry, and then for storing precomputed geometry and lighting. In this section we will review how to use textures to simulate various effects ranging from bump-mapping to storing the complete geometry of an object or a lot of texture memory using impostors.
Activities
Activity Evaluation act
Lectures
Material will be presented in lectures along the term. You are expected to conduct complementary readings that will be assigned on occasion, to be presented at a later date.- Theory: Lectures
- Autonomous learning: Lectures
Contents:
Theory
30h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
43.6h
Implementation of the practical assignments.
Some assignments will be proposed and the students must develop them, partially during the lab sessions.- Laboratory: Development of assignments using GLSL.
- Autonomous learning: Development of assignments using GLSL.
Contents:
Theory
0h
Problems
0h
Laboratory
12h
Guided learning
0h
Autonomous learning
36h
Articles presentation
Papers will be assigned to the students and they will be presented and discussed by the students.- Problems: Paper presentation and discussion.
- Autonomous learning: Paper presentation
Contents:
Theory
0h
Problems
6h
Laboratory
0h
Guided learning
0h
Autonomous learning
20h
Teaching methodology
For the realization of the course in the teacher provide theoretical lectures and materials as articles or manuals that students have read and presented in some cases.During the lectures will introduce the most relevant concepts and give guidelines for the preparation of submissions of articles.
During the laboratory classes will be three events: developing small exercises GLSL to implement a small project to be presented at the end of the course and make presentations of papers in the literature.
Evaluation methodology
The evaluation method will have three parts: the presentation of papers and attendance, development of the project and a final exam.The presentation of papers and attendance will note (PRES) that depend on class attendance and participation, the rigor and quality of the presentation of the article that touches the student as well as the ability to answer questions from students and / or teacher about the article. Value will be questions that students make in the presentations of other students.
The weight of this part (PRES) will be 30% of the final grade.
The other part of the assessment (40%) will be the programming project (PROJ).
The final exam (EF) will have a weight of 30%.
The final grade is then:
NF = PRES * 0.3 + PROJ * 0.4 + EF * 0.3
Bibliography
Basic
-
OpenGL programming guide: the official guide to learning OpenGL, version 4.5 with SPIR-V
- Kessenich, J.; Sellers, G.; Shreiner, D,
Addison-Wesley,
2017.
ISBN: 9780134495491
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004095509706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Real-time rendering
- Akenine-Möller, T. [et al.],
CRC Press,
2018.
ISBN: 9781138627000
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004153129706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementary
-
OpenGL superbible: comprehensive tutorial and reference
- Wright, R.S. [et al.],
Addison-Wesley,
2011.
ISBN: 9780321712615
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003812729706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Wiki GLSL http://en.wikipedia.org/wiki/GLSL
- Wiki OpenGL http://en.wikipedia.org/wiki/OpenGL
- Official page of OpenGL http://www.opengl.org