Skip to main content

Graphics

Credits
6
Types
  • GRAU: Specialization compulsory (Computing)
  • GCED: Elective
Requirements
Department
CS
Web
http://www.cs.upc.edu/~virtual/G
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

Others

Weekly hours

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

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.
  • 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.
  • 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
    0h
    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
    0h
    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
    0h
    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
    0h
    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
    0h


    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