Computer Graphics
Code  Completion  Credits  Range  Language 

AE4M39PGR  Z,ZK  6  2P+2C 
 The course cannot be taken simultaneously with:
 Fundamentals of Computer Graphics (X39ZPG)
Computer Graphics (XE39ZPG)  Lecturer:
 Tutor:
 Supervisor:
 Department of Computer Graphics and Interaction
 Synopsis:

Graphical libraries are used for realistic rendering of 3D scenes. The main goal of this course is to introduce students to to the Application Programming Interface (API) for 3D graphics and learn them how to program a 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 the scientific visualization. Practices are focused on the work on given tasks and individual projects that help students to get practical experience with the OpenGL graphics library.
 Requirements:

Programming in C/C++, linear algebra.
 Syllabus of lectures:

1. Graphical interfaces and standards. OpenGL Utility Toolkit, introduction to OpenGL.
2. OpenGL geometric primitives and their attributes, vertex arrays.
3. Mathematics for CG and geometric transformations in OpenGL.
4. Scene structure representation and display lists.
5. Light and color, illumination and shading models, light and materials in OpenGL.
6. Textures and texturing (texture mapping and filtering).
7. Input operations and their implementation in OpenGL.
8. OpenGL rendering pipeline, the frame buffer and fragment operations.
9. Miscellaneous techniques  quadrics, additional clipping planes, blending, antialiasing, fog, and raster graphics.
10. Advanced modeling techniques I (interpolating and approximating curves).
11. Advanced modeling techniques II (parametric surfaces, tesselations).
12. Geometric modeling
13. Scientific visualization
 Syllabus of tutorials:

1. Introduction, specification of the individual student projects.
2. GLUT example programs. Projects theme assignment.
3. OpenGL geometric primitives  solution of given tasks.
4. OpenGL transformations  solution of given tasks.
5. Consultations, individual students work on projects  I.
6. Light and materials in OpenGL  solution of given tasks.
7. Scene graph and display lists  solution of given tasks.
8. Consultations, individual students work on projects  II.
9. Consultations, individual students work on projects  III. The first checkpoint of the individual student projects.
10. Textures in OpenGL  solution of given tasks.
11. Curves, surfaces and selection  solution of given tasks.
12. Consultations, submitting of individual student projects.
13. 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 how 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 allowing orientation in the field of computer graphics, and representing solid fundamentals for your professional development, e.g. for GPU programming and animations.
 Study materials:

1. OpenGL Architecture Review Board, D. Shreiner, M. Woo, J. Neider: The OpenGL Programming Guide: The Official Guide to Learning OpenGL. AddisonWesley Professional, 2007, ISBN 9780321481009, 6th edition.
2. P. Shirley, S. Marschner: Fundamentals of Computer Graphics. A K Peters, 2009, ISBN 9781568814698, 3rd edition.
3. J. McConnell: Computer Graphics: Theory Into Practice. Jones & Bartlett Publishers, 2005, ISBN 9780763722500.
 Note:
 Further information:
 http://cent.felk.cvut.cz/courses/EPGR/
 No timetable has been prepared for this course
 The course is a part of the following study plans:

 Otevřená informatika  Umělá inteligence (elective course)
 Otevřená informatika  Počítačové inženýrství (elective course)
 Otevřená informatika  Počítačové vidění a digitální obraz (elective course)
 Otevřená informatika  Počítačová grafika a interakce (elective course)
 Otevřená informatika  Softwarové inženýrství (elective course)
 Open Informatics  Artificial Intelligence (elective course)
 Open Informatics  Computer Engineering (elective course)
 Open Informatics  Computer Vision and Image Processing (elective course)
 Open Informatics  Computer Graphics and Interaction (elective course)
 Open Informatics  Software Engineering (elective course)
 Otevřená informatika  Nový  Počítačová grafika a interakce (elective course)
 Otevřená informatika  Nový  Softwarové inženýrství (elective course)
 Open Informatics  New  Software Engineering (elective course)