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 (
Antonio Chica Calaf (
Marc Comino Trinidad (
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.
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.
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.
Get current graphics hardware and the development of GPU programming paradigms.
Knowing different languages for developing applications for GPUs.
Learning the architecture of programmable GPUs.
Understand the problems and limitations of developing graphical applications in real time.
Knowing the different programmable pipeline stages.
Understanding the flow of data on GPUs.
Learning to use the graphics pipeline for making general calculations.
Learn how to develop computer graphics applications for GPUs.
Learning to program in GLSL. Language specification and integration with OpenGL.
Learning the state of the art in algorithms to generate advanced shadows.
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.
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.
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.
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.
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.
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