Computer graphics programming

The course is not on the list Without time-table
Code Completion Credits Range Language
BI-PGR.21 Z,ZK 5 2P+2C Czech
Garant předmětu:
Department of Software Engineering

After attending this curse, students can program a simple interactive 3D graphical application like a computer game or scientific visualization, design the scene, add textures imitating geometric details and materials (like wall surface, wood, sky), and set up the lighting. At the same time, they understand the fundamental principles and terms used in computer graphics, such as graphical pipeline, geometric transformations, or lighting model. They gain knowledge allowing orientation in computer graphics and representing solid fundamentals for your professional development, e.g., GPU programming and animations. They get used to techniques utilized in geometric modeling, modeling curves and surfaces, and scientific visualization.


Basic knowledge of C/C++, programming and debugging of source codes, linear algebra.

Syllabus of lectures:

1. Introduction to computer graphics. Introduction to GLUT

2. Writing shaders in OpenGL I – fundamentals

3. Writing shaders in OpenGL II – data & buffers

4. Transformations I (coordinate systems, model, view)

5. Transformations II (projection, viewport, gimbal lock)

6. Light and color, illumination and shading models, light and materials in OpenGL

7. Textures and texturing (texture mapping and filtering)

8. Rendering pipeline and framebuffer, operations with fragments.

9. Interaction techniques - input methods, object selection, virtual trackball,

Fog and antialiasing

10. Interpolating and approximating curves and surfaces I

11. Interpolating and approximating curves and surfaces II

12. Representation of rotation, quaternions

13. Advanced rendering methods and global illumination

Syllabus of tutorials:

1. Introduction, semestral projects, a compilation of assignments

2. Fundamentals of shader programming. Semester project selection.

3. Structure of a program in GLUT, buffers (VBO and VAO)

4. Graphical elements

5. Transformations

6. Shading, lights, and materials

7. Seminar on transformations, first seminar projects check

8. Textures

9. Curves

10. Selection and interaction

11. Individual consultations of semestral projects

12. Student projects delivery

13. Fast presentation + choice of the best student works. Assignment

Study Objective:

The module's goal is to explain the basic notions and principles of computer graphics (e.g., textures, lighting, transformations) and learn how to develop simple interactive graphical applications using the OpenGL library.

Study materials:

[1] Žára, J. a kol.: Moderní počítačová grafika, Computer Press, 2004, 80-251-0454-0,

[2] Gortler, S.: Foundations of 3D Computer Graphics, The MIT Press, 2012, 9780262017350,

[3] Wolf, D.: OpenGL 4.0 Shading Language Cookbook, Packt Publishing Ltd, 2011, 978-1-849514-76-7,

Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2024-05-24
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet6703106.html