Fast Realistic Rendering

You are here

Specialization compulsory (Computer Graphics and Virtual Reality)
This subject has not requirements, but it has got previous capacities
The objective of this course is to present several techniques and algorithms for realistic rendering. Throughout the course we will visit some concepts such as shadows, ambient occlusion, and so on, and we will introduce how to achieve such effects using GPUs.


Person in charge

  • Pere Pau Vázquez Alcocer ( )


  • Imanol Muñoz Pandiella ( )

Weekly hours

Guided learning
Autonomous learning


Technical Competences of each Specialization

Computer graphics and virtual reality

  • CEE1.1 - Capability to understand and know how to apply current and future technologies for the design and evaluation of interactive graphic applications in three dimensions, either when priorizing image quality or when priorizing interactivity and speed, and to understand the associated commitments and the reasons that cause them.
  • CEE1.2 - Capability to understand and know how to apply current and future technologies for the evaluation, implementation and operation of virtual and / or increased reality environments, and 3D user interfaces based on devices for natural interaction.
  • CEE1.3 - Ability to integrate the technologies mentioned in CEE1.2 and CEE1.1 skills with other digital processing information technologies to build new applications as well as make significant contributions in multidisciplinary teams using computer graphics.

Advanced computing

  • CEE3.1 - Capability to identify computational barriers and to analyze the complexity of computational problems in different areas of science and technology as well as to represent high complexity problems in mathematical structures which can be treated effectively with algorithmic schemes.

Generic Technical Competences


  • CG1 - Capability to apply the scientific method to study and analyse of phenomena and systems in any area of Computer Science, and in the conception, design and implementation of innovative and original solutions.
  • CG3 - Capacity for mathematical modeling, calculation and experimental designing in technology and companies engineering centers, particularly in research and innovation in all areas of Computer Science.

Transversal Competences

Information literacy

  • CTR4 - Capability to manage the acquisition, structuring, analysis and visualization of data and information in the area of informatics engineering, and critically assess the results of this effort.

Appropiate attitude towards work

  • CTR5 - Capability to be motivated by professional achievement and to face new challenges, to have a broad vision of the possibilities of a career in the field of informatics engineering. Capability to be motivated by quality and continuous improvement, and to act strictly on professional development. Capability to adapt to technological or organizational changes. Capacity for working in absence of information and/or with time and/or resources constraints.


  • CB6 - Ability to apply the acquired knowledge and capacity for solving problems in new or unknown environments within broader (or multidisciplinary) contexts related to their area of study.
  • CB7 - Ability to integrate knowledges and handle the complexity of making judgments based on information which, being incomplete or limited, includes considerations on social and ethical responsibilities linked to the application of their knowledge and judgments.


  1. Get current graphics hardware and the development of GPU programming paradigms.
    Related competences: CEE1.1, CEE1.2, CEE1.3, CB6,
    • Learning the architecture of programmable GPUs.
    • Knowing different languages ​​for developing applications for GPUs.
  2. Understand the problems and limitations of developing graphical applications in real time.
    Related competences: CEE1.1, CEE1.2, CEE1.3, CEE3.1,
    • Understanding the flow of data on GPUs.
    • Knowing the different programmable pipeline stages.
    • Learning to use the graphics pipeline for making general calculations.
  3. Learn how to develop computer graphics applications for GPUs.
    Related competences: CG1, CG3, CTR4,
    • Learning to program in GLSL. Language specification and integration with OpenGL.
  4. Learning the state of the art in algorithms to generate advanced shadows.
    Related competences: CB7, CTR4, CTR5,
    • Learning algorithms for generating hard shadows, ambient occlusion and shadows generation.
    • Implementations of the algorithms on the GPU shadows.
  5. Learn techniques for accelerating scene rendering by geometry processing.
    Related competences: CEE1.2, CTR4, CTR5,
    • Visibility calculation. Primitive sorting. Batches.
  6. Learning image-based rendering algorithms.
    Related competences: CEE1.1, CG3, CEE1.2, CEE1.3, CEE3.1,
    • Light Fields. Layered Depth Images. Relief Impostors.


  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.


Activity Evaluation act


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
Objectives: 1 2 3
Guided learning
Autonomous learning

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.
Objectives: 1 2 3
Guided learning
Autonomous learning

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
Objectives: 2 3 5
Guided learning
Autonomous learning

Final exam

At the end of the term you will have a final exam, which may be a take-home.
Objectives: 1 2 4 3 5 6
Week: 18
Type: final exam
Guided learning
Autonomous learning

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), which can be done at home, will have a weight of 30%.
The final grade is then:
NF = PRES * 0.3 + PROJ * 0.4 + EF * 0.3




Web links

Previous capacities

Students are expected to be familiar with OpenGL and have taken some graphics subjects before taking this subject. In particular, students need to know at a minimum how to implement programs in OpenGL with vertex shaders, fragment shaders, and eventually geometry shaders. They are expected to be able to send geometry through the pipeline and be able to use other features such as texturing.