Credits
6
Types
Specialization compulsory (Computing)
Requirements
  • Prerequisite: IDI
  • Corequisite: PROP
Department
CS
The course focuses on the development of interactive computer graphics applications. The course covers rendering, interaction, and realism techniques. Students will develop 3D applications using C++, OpenGL and GLSL.

Teachers

Person in charge

  • Carlos Andujar Gran ( )

Others

  • Alejandro Beacco Porres ( )
  • Alejandro Ríos Jerez ( )
  • Alvaro Vinacua Pla ( )
  • Antonio Chica Calaf ( )
  • Imanol Muñoz Pandiella ( )
  • Jose Luis Pontón Martinez ( )
  • Marta Fairen Gonzalez ( )
  • Oscar Argudo Medrano ( )
  • Víctor Franco Sánchez ( )

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6

Competences

Technical Competences

Common technical competencies

  • CT1 - To demonstrate knowledge and comprehension of essential facts, concepts, principles and theories related to informatics and their disciplines of reference.
    • CT1.2A - To interpret, select and value concepts, theories, uses and technological developments related to computer science and its application derived from the needed fundamentals of mathematics, statistics and physics. Capacity to solve the mathematical problems presented in engineering. Talent to apply the knowledge about: algebra, differential and integral calculus and numeric methods; statistics and optimization.
    • CT1.2C - To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
  • CT4 - To demonstrate knowledge and capacity to apply the basic algorithmic procedures of the computer science technologies to design solutions for problems, analysing the suitability and complexity of the algorithms.
    • CT4.1 - To identify the most adequate algorithmic solutions to solve medium difficulty problems.
  • CT5 - To analyse, design, build and maintain applications in a robust, secure and efficient way, choosing the most adequate paradigm and programming languages.
    • CT5.2 - To know, design and use efficiently the most adequate data types and data structures to solve a problem.
    • CT5.3 - To design, write, test, refine, document and maintain code in an high level programming language to solve programming problems applying algorithmic schemas and using data structures.
    • CT5.5 - To use the tools of a software development environment to create and develop applications.

Transversal Competences

Appropiate attitude towards work

  • G8 [Avaluable] - To have motivation to be professional and to face new challenges, have a width vision of the possibilities of the career in the field of informatics engineering. To feel motivated for the quality and the continuous improvement, and behave rigorously in the professional development. Capacity to adapt oneself to organizational or technological changes. Capacity to work in situations with information shortage and/or time and/or resources restrictions.
    • G8.3 - To be motivated for the professional development, to face new challenges and the continuous improvement. To have capacity to work in situations with a lack of information.

Sustainability and social commitment

  • G2 [Avaluable] - To know and understand the complexity of the economic and social phenomena typical of the welfare society. To be capable of analyse and evaluate the social and environmental impact.
    • G2.3 - To take into account the social, economical and environmental dimensions, and the privacy right when applying solutions and carry out project which will be coherent with the human development and sustainability.

Technical Competences of each Specialization

Computer science specialization

  • CCO2 - To develop effectively and efficiently the adequate algorithms and software to solve complex computation problems.
    • CCO2.3 - To develop and evaluate interactive systems and systems that show complex information, and its application to solve person-computer interaction problems.
    • CCO2.6 - To design and implement graphic, virtual reality, augmented reality and video-games applications.

Objectives

  1. Understand in depth the various stages of the graphics pipeline
    Related competences: CT1.2A, CT1.2C, CCO2.6,
  2. Being able to implement the algorithms associated with different stages of visualization
    Related competences: CT1.2A, CT1.2C, CCO2.6, CT4.1, CT5.5,
  3. Understand the fundamentals, limitations of the model equations of local lighting
    Related competences: CCO2.6,
  4. Assimilating the functionality, programming and execution model shaders in GLSL
    Related competences: CT1.2C, CCO2.6,
  5. Understanding and implementing technical skills have to interact with 3D scenes (selection, manipulation and navigation).
    Related competences: CCO2.3, CCO2.6, CT5.5, CT5.3,
  6. Know in depth the concepts, techniques and algorithms related texturació surfaces
    Related competences: CT1.2A, CT1.2C, CCO2.6,
  7. Understand and be able to develop algorithms for the simulation of shadows
    Related competences: CT1.2A, CT1.2C, CCO2.6,
  8. Understand and be able to develop algorithms for the simulation of mirror reflections
    Related competences: CT1.2A, CT1.2C, CCO2.6,
  9. Understand and be able to develop algorithms for the simulation of transparent objects
    Related competences: CT1.2A, CT1.2C, CCO2.6,
  10. Assimilate the main concepts, equations and algorithms for global illumination
    Related competences: CT1.2A, CT1.2C, CCO2.6, CT4.1,
  11. Knowing the ray-tracing algorithm and its variants
    Related competences: CT1.2A, CT1.2C, CCO2.6, CT4.1,
  12. Being able to implement features for efficient ray-geometry intersection
    Related competences: CT1.2A, CT1.2C, CCO2.6, CT4.1, CT5.2,
  13. Identify the advantages and disadvantages of the different structures of spatial data
    Related competences: CCO2.6, CT5.2,
  14. Being able to develop applications for interactive graphics rendering of 3D scenes
    Related competences: CCO2.3, CCO2.6, CT4.1, CT5.2, CT5.5, CT5.3,
  15. Understand the elements of realistic visualization and differences between models of local and global illumination
    Related competences: CCO2.3, CCO2.6,
  16. Know CG possibilities for the professional career, and develop quality skills.
    Related competences: G8.3, G2.3,
  17. Know the role of computer graphics in the development of software with clear social, economic or environmental contributions, in fields such as medicine, industrial design and cultural heritage.
    Related competences: G2.3,

Contents

  1. Introduction to Graphics
    Paradigms display. Elements that define the rendering. Emission, reflection and transmission of light. Behavior and widespread speculation. Models of global and local illumination.
  2. Computer graphics applications areas
    Role of computer graphics in our world. Main applications with clear social, economic and environmental contributions. Applications in medicina, industry and cultural heritage.
  3. Process visualization projective
    Geometric transformations and coordinate systems. Shipping geometry. Vertex processing. Composition of primitive and cut. Rasterització and interpolation. Processing fragments. Operations fragment. Upgrading the frame buffer.
  4. Development of shaders
    Vertex shaders. Geometry Shaders. Fragment shaders. Language GLSL. API for developing shaders.
  5. Interaction with 3D scenes
    Selection of objects. Manipulation of objects. Handling the navigation camera and the scene.
  6. 2D Textures
    Texture space. Reverse Mapping. Generation, transformation, and interpolation of texture coordinates. Projective texture mapping. Sampled textures. Mipmapping. Samplers in GLSL.
  7. Simulation of shadows
    Concepts. Umbra and penumbra. Properties. By projecting shadows on one or more plans. Shadow mapping.
  8. Simulation of specular reflections
    Concepts. Direct Reflection (with virtual objects). Simulation with dynamic textures. Environment mapping
  9. Simulation of transparent objects
    Introduction. Scattering. Refraction. Snell law. Critical angle. Fresnel equations. Alpha blending.
  10. Global Illumination
    Figures basic radiometry. BSDF. General rendering equation. Mechanisms of transport of light. Classification of global illumination algorithms.
  11. Ray-tracing
    Ray-tracing classic. Ambient occlusion
  12. Ray-Intersection Geometry
    Algorithms-ray intersection geometry. Spatial Data Structures. Subdivision of space. Branch of the scene.

Activities

Activity Evaluation act


Introduction to Graphics

Desenvolupament dels continguts del tema corresponent.
Objectives: 17 15
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Applications of computer graphics

Desenvolupament dels continguts del tema corresponent.
Objectives: 17 16
Contents:
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Process visualization projective

Desenvolupament dels continguts del tema corresponent.
Objectives: 1 2 14
Contents:
Theory
2h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
6h

Development of shaders

Desenvolupament dels continguts del tema corresponent.
Objectives: 1 4 14
Contents:
Theory
2h
Problems
0h
Laboratory
8h
Guided learning
0h
Autonomous learning
20h

Interaction with 3D scenes

Desenvolupament dels continguts del tema corresponent.
Objectives: 5 14
Contents:
Theory
2h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
10h

2D Textures

Desenvolupament dels continguts del tema corresponent.
Objectives: 6
Contents:
Theory
4h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
8h

Partial Review

Consideration of the first part of the course topics.
Objectives: 17 15 1 2 3 4 5 6
Week: 7
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

A laboratory test

Testing concepts, techniques, algorithms, languages ​​and APIs on the first lab.
Objectives: 17 15 1 2 3 4 5 6
Week: 8
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
0h

Simulation of shadows

Desenvolupament dels continguts del tema corresponent.
Objectives: 7 14
Contents:
Theory
4h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
8h

Simulation of specular reflections

Desenvolupament dels continguts del tema corresponent.
Objectives: 8 14
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
8h

Simulation of transparent objects

Desenvolupament dels continguts del tema corresponent.
Objectives: 9 14
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Global Illumination

Desenvolupament dels continguts del tema corresponent.
Objectives: 10
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Ray-tracing

Desenvolupament dels continguts del tema corresponent.
Objectives: 10 11 14
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
10h

Intersection-beam geometry

Desenvolupament dels continguts del tema corresponent.
Objectives: 13 14
Contents:
Theory
1h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Test Laboratory 2

Testing concepts, techniques, algorithms, languages ​​and APIs on the second lab.
Objectives: 17 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Week: 14
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
0h

Final Exam

Final examination of the entire syllabus
Objectives: 17 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Week: 15 (Outside class hours)
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

Working graphics applications in today's society

Written work on the role of computer graphics in the software development impact social, economic and / or environmental, in areas such as medicine, design and cultural heritage.
Objectives: 17 16
Week: 15
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h


Teaching methodology

The teaching methodology is based on weekly theory classes (2h) and lab (2h). In the theory classes will introduce the concepts, equations, algorithms and techniques of the course contents, and exercises that help to assimilate the concepts and facilitate the development of practices that are performed in the lab sessions. The lab will consist of the teacher in introducing the scripts practices, structured sessions, and specific concepts required for their development. Students must complete the design and implementation of various applications related to the contents of the course. To facilitate their development, applications will be supplied skeletons will be partially programmed.

Two hours of theory classes are weekly.

The two hours of laboratory classes are also weekly.

The independent learning is considered essential because the students outside of class must deepen some of the content entered by the teacher, using the documentation provided and seeking new ones.

The course uses the C + + programming language, along with OpenGL and GLSL.

Evaluation methodology

F = final exam
AA = other online activities
C1 = lab control 1
C2 = lab control 2

Mark = max(0.5E, 0.4E + 0.1AA) + 0.25C1 + 0.25C2

Bibliography

Basic:

Complementary:

Web links