Computer Graphics
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BE0M39PGR | Z,ZK | 6 | 2P+2C | English |
- Course guarantor:
- Jaroslav Sloup
- Lecturer:
- Jaroslav Sloup
- Tutor:
- Jaroslav Sloup
- Supervisor:
- Department of Computer Graphics and Interaction
- Synopsis:
-
Various applications use graphical libraries for the rendering of three-dimensional scenes. The main goal of this course is to introduce students to the Application Programming Interface (API) for 3D graphics and teach them how to program simple interactive OpenGL-based 3D graphical applications. Naturally, the course describes the fundamentals of computer graphics, such as rendering pipeline, geometric transformations, texturing, scene modeling, shading and illumination models, etc. Lectures also cover advanced modeling techniques (parametric curves and surfaces) and selected topics related to scientific visualization. Practices focus on the work on assigned tasks and individual projects to provide students with practical experience with the OpenGL graphics library.
- Requirements:
-
Programming in C/C++, linear algebra.
- Syllabus of lectures:
-
1. Introduction to computer graphics. Writing shaders in OpenGL I – fundamentals.
2. Writing shaders in OpenGL II – data & buffers. Introduction to GLUT.
3. Transformations I (coordinate systems, model, view).
4. Transformations II (projection, viewport, gimbal lock).
5. Light and color, illumination and shading models, light and materials in OpenGL.
6. Textures and texturing (texture mapping and filtering).
7. Rendering pipeline and framebuffer, operations with fragments.
8. Interaction techniques - input methods, object selection, virtual trackball. Fog and antialiasing.
9. Interpolating and approximating curves I.
10. Interpolating and approximating curves II.
11. Representation of rotation, quaternions.
12. Scene structure representation - scene graph.
13. Advanced rendering methods and global illumination.
- Syllabus of tutorials:
-
1. Introduction, specification of the individual student projects.
2. Writing simple shaders in OpenGL. Projects theme assignment.
3. OpenGL buffers (VAO and VBO).
4. Application and data structure (GLUT).
5. OpenGL geometric primitives.
6. OpenGL transformations.
7. Textures in OpenGL.
8. Light and materials in OpenGL.
9. Animation curves.
10. Selection and interaction.
11. Consultations, individual students work on projects.
12. Consultations, individual students work on projects.
13. Submitting of individual student projects.
14. Final class - presentation of the individual student projects, assessment.
- Study Objective:
-
You will know how to program a simple interactive 3D graphical application like a computer game or scientific visualization. You will learn 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, you will understand the fundamental principles and terms used in computer graphics, such as graphical pipeline, geometric transformations, lighting model, etc. You will gain knowledge that allows orientation in the field of computer graphics and represents solid fundamentals for your professional development, e.g., for GPU programming and animations.
- Study materials:
-
1. P. Shirley, S. Marschner: Fundamentals of Computer Graphics. A K Peters, 2009, ISBN 978-1568814698, 3rd edition.
2. J. McConnell: Computer Graphics: Theory Into Practice. Jones & Bartlett Publishers, 2005, ISBN 978-0763722500.
3. D. Wolff: OpenGL 4.0 Shading Language Cookbook. Packt Publishing, 2011, ISBN 978-1-849514-76-7.
4. D. Shreiner, G. Sellers, J. M. Kessenich, B. M. Licea-Kane: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3. 8th ed., Addison-Wesley Professional, 2013, ISBN 978-0321773036.
- Note:
- Time-table for winter semester 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Wed Thu Fri - Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans: