Since the practical part of the course relies heavily on programming in C, students are expected to have prior knowledge of the language.
It?s also important to have a solid background in algebra, as many of the concepts involve matrix systems, projections, and vector spaces.
The course aims for the student to acquire a training in the generation of 2D / 3D graphics, in terms of its subsequent application in the world of videogames, animation and virtual and augmented realities.
All the strengths and fundamentals of any graphic application are covered, from the necessary mathematical base, to the knowledge of accessible and used graphic libraries worldwide.
In addition, the knowledge to program graphics applications in real time using C ++ is introduced.
Topic 1. Introduction to graphics
- Graphics basics - displays, buffers, colors, Rasterization: Draw to screen in 2D, Virtual worlds: draw by object or by pixel, Vector and Matrix Operations
Topic 2. Basic concepts for real-time graphics
- Transformations, Coordinate Spaces and Matrix Representations, Cameras and Viewing Matrices, Projections and Perspective and Orthographic Projection Matrices
Topic 3. Modern pipeline of real-time application programming
- Introduction to OpenGL, The modern hardware pipeline, Introduction to programming with Shaders
Topic 4. Lighting and composition of scenes, advanced techniques
- Basic concepts of light and lighting, Lambert's law, Gouraud Shading, Local lighting using the Phong equation, Illumination per face, per vertex, per pixel, Visibility test, Hidden surface removal, Z-buffer, clipping, and composition, Textures
Topic 5. Programming in OpenGL and C ++
- Introduction to OpenGL programming, Buffers, Arrays and Objects, Using GLM and GLUT, Use external libraries to upload content, Programming in GLSL Shaders language, Implementation of lighting techniques, Implementation of advanced techniques
Each week of classes are divided into two sessions: a theory session (1 hour, master class) and a practical session (2 hours, lab/workshop class). In general, in the practical sessions the theory that was been learned during week is implemented.
The practical sessions are linked to the theory sessions, since the subject is very practical and the students will be programming continuously.
The assessments are: a final exam, four practical assignments, and a final project.
The contribution of each of the grades is:
Final exam mark: 35% (Highly significant)
Practice: 25%
Delivery 1: 5% (Moderately significant)
Delivery 2: 5% (Moderately significant)
Delivery 3: 5% (Moderately significant)
Delivery 4: 10% (Moderately significant)
Final Project: 40% (Highly significant)
- Akenine-Moller, Tomas, Eric Haines, and Naty Hoffman. Real-time rendering. AK Peters/CRC Press, 2019.
- Neider, Jackie, Tom Davis, and Mason Woo. OpenGL programming guide. Vol. 14. Reading, MA: Addison-Wesley.(7th ed)
- Foley, James D. Introduction to Computer Graphics. Addison-Wesley Professional; (January 1, 1993)
- https://learnopengl.com/