Subject description - BE0M39PGR

Summary of Study | Summary of Branches | All Subject Groups | All Subjects | List of Roles | Explanatory Notes               Instructions
BE0M39PGR Computer Graphics
Roles:  Extent of teaching:2P+2C
Department:13139 Language of teaching:EN
Guarantors:Sloup J. Completion:Z,ZK
Lecturers:Sloup J. Credits:6
Tutors:Sloup J. Semester:Z

Anotation:

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.

Study targets:

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.

Course outlines:

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.

Exercises outline:

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.

Literature:

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.

Requirements:

Programming in C/C++, linear algebra.

Note:

More detailed information about the course (including the requirements for receiving the credit and passing the exam) can be found on the course web page http://service.felk.cvut.cz/courses/AE4M39PGR .

Keywords:

graphical library, geometric primitives, rendering pipeline, attributes, coordinate systems, transformations, camera movement, scene graph, display lists, lighting, shading, lights, materials, texture mapping, frame buffer, depth buffer, stencil buffer, fragments, raster data, blending, transparency, anti-aliasing, fog, interactive graphics, selection, feedback, tessellations, evaluators, parametric curves and surfaces, NURBS

Subject is included into these academic programs:

Program Branch Role Recommended semester


Page updated 9.11.2024 15:51:53, semester: L/2024-5, L/2023-4, Z/2024-5, Z/2025-6, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)