Computer graphics programming

The course is not on the list Without time-table
Code Completion Credits Range Language
BI-PGR.1 Z,ZK 5 2P+2C Czech
Department of Software Engineering

Students are able to program a simple interactive 3D graphical application like a computer game or scientific visualisation, to 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. for GPU programming and animations. They get used to techniques utilised in geometric modelling, modelling of curves and surfaces, and scientific visualisation.


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), learn simple interactive graphical applications using OpenGL library, and introduce the techniques used in geometric modeling, curve and plane modeling, and data visualization.

Study materials:

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

[2] Dave Shreiner, Graham Sellers, John Kessennich, Bill Licea-Kane: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 4.2 (8th Edition), 2012/2013.

[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 2022-12-02
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet3460906.html