Computer graphics programming
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BI-PGR.21 | Z,ZK | 5 | 2P+2C | Czech |
- Garant předmětu:
- Lecturer:
- Tutor:
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
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.
- Requirements:
-
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,
- Note:
- Further information:
- https://courses.fit.cvut.cz/BI-PGR
- No time-table has been prepared for this course
- The course is a part of the following study plans:
-
- Bachelor Specialization Information Security, in Czech, 2021 (elective course)
- Bachelor Specialization Management Informatics, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Graphics, in Czech, 2021 (PS)
- Bachelor Specialization Computer Engineering, in Czech, 2021 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2021 (VO)
- Bachelor Specialization Web Engineering, in Czech, 2021 (elective course)
- Bachelor Specialization Artificial Intelligence, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Science, in Czech, 2021 (elective course)
- Bachelor Specialization Software Engineering, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Systems and Virtualization, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Networks and Internet, in Czech, 2021 (elective course)
- Bachelor Specialization Information Security, in Czech, 2024 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2024 (VO)
- Bachelor Specialization Management Informatics, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Graphics, in Czech, 2024 (PS)
- Bachelor Specialization Software Engineering, in Czech, 2024 (elective course)
- Bachelor Specialization Web Engineering, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Networks and Internet, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Engineering, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Systems and Virtualization, in Czech, 2024 (elective course)
- Bachelor Specialization Artificial Intelligence, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Science, in Czech, 20214 (elective course)