Computer Graphics

PDF versionPDF version

Course Title:  
Computer Graphics 

Instructor:  
László Szirmay-Kalos and László Szécsi

Duration: 
Weeks 1-14, 2x2 hours/week, 4 credits

Aim of the Course:
This course teaches the principles of computer graphics and enables students to implement modeling, rendering, and animation systems as well as 3D video games in a C++/OpenGL/Cg environment.

Method of instruction:
The course consists of lectures (2 hours per week), practices (2 hours per week) and 4 home assignments. Parallel to the lectures, students have to develop programs in C++ aiming at the discussed graphics problems. Students are provided with a simple C++/GLUT/OpenGL framework program which should be extended. During practices, parts of these assignments are solved together under the teachers’ supervision. The remaining parts should be finalized at home individually or forming small teams.

Assessment:
The final assessment is based on the quality of the home assignments (60%) and on the final presentation about the topic of one of the assignments.

Detailed Program and Class Schedule: 

  1. Introduction:
    Modeling, virtual world, and rendering.
    Practical: Development environment setup.
    Compilation and linking of a simple OpenGL application.

     

  2. Fundamentals of graphics software
    Event driven programming, device independence, graphics libraries. GLUT and OpenGL.
    Practical: Drawing triangles and polylines. Moving them with keys and the mouse.

     

  3. Assignment 1: Simple 2d game in opengl
    This assignment serves for students to familiarize themselves with the basic drawing operations and the event handling framework of OpenGL and GLUT.
     

     

  4. Geometric modeling
    Coordinate systems. Explicit, implicit and parametric forms. Curves with interpolation and approximation. Lagrange interpolation, Bezier curves, B-spline, Catmull-Rom spline. Parametric and implicit surfaces. Subdivision surfaces. Solids.
    Practical: Drawing various curves, adding/moving control points interactively.

     

  5. Geometric transformations
    Homogeneous coordinates. Affine transformations and their matrix representation. Projective geometry.
    Practical: Rotating and moving objects.

     

  6. 2d image synthesis
    2D rendering pipeline: vectorization, transformations, clipping, line and polygon rasterization. Software architecture of 2D drawing programs.

     

  7. Assignment 2: 2d vector editor
    Students receive this assignment after practical sessions where they have already implemented drawing Bezier and Lagrange curves, and adding new control points using mouse clicks. The assignment requires them to apply their knowledge to different types of curves (which is not automatic), and to add new editing features, demonstrating their understanding of the event based application model.
    See example for assignment text

     

  8. 3d rendering and optical laws
    Power and radiance. Laws of light-matter interaction. BRDFs.
     

     

  9. Ray tracing
    Local illumination model and ray casting. Solution of the visibility problem. Recursive ray tracing. Software architecture of ray tracers. Ray tracing acceleration.
    Practical: Ray casting with spheres.

     

  10. Assignment 3: ray tracing program
    Students receive this assignment after practical sessions where they have already implemented ray tracing spheres with shadows and reflections. They have to implement ray intersection for somewhat more complex geometry, and make creative use of tweaking the ray tracing process for various effects

     

  11. Incremental image synthesis
    3D rendering pipeline: tessellation, transformations, 3D clipping in homogeneous coordinates, visibility determination, shading, and texturing.
    Pratical: 3D graphics with OpenGL

     

  12. Assignment 3: interactive 3d game
    Students receive this assignment after practical sessions where they have already implemented rendering and animation of triangle mesh models, and also complete a 2D Asteroids game earlier in the semester. They have to combine the game architecture elements with 3D graphics, with more complex control and animation challenges.
    See example for assignment text

     

  13. Animation, computer games
    Requirements of realistic animation. Newton’s law. Key-frame animation, path animation, character animation, dynamics. Motion capture. Game architecture: virtual world, game loop, user interfaces.
    Practical: Particle systems and billboards

     

  14. GPU programming
    GPU architecture. Vertex shader and fragment shader programs. Examples: Phong shading, shadow mapping, and environment mapping. GPGPU concepts. CUDA.
    Practical: Particle systems and billboards

     

  15. Extra
    Special topics depending on the student interests, e.g. mobile graphics, medical visualization, scientific visualization, computational aesthetics, game engines, global illumination rendering, etc.
     

     

Textbook: 
Tomas Akenine-Moller, Eric Haines, Eric Haines: Real-Time Rendering, A.K. Peters. 
László Szirmay-Kalos: Computer Graphics (in Algorithms of Informatics II edited by Antal Iványi, Mondat Kiadó, available electronically)
 

Instructors’ Bio: 

László Szirmay-Kalos (born 1963) is a full professor and the head of the Department of Control Engineering and Information Technology at the Budapest University of Technology and Economics. He received Ph.D. and D.Sc. degrees from the Hungarian Academy of Science in 1992 and 2001, respectively. His research interests cover computer graphics, games, Monte Carlo methods, scientific and medical visualization, and the application of graphics cards for general-purpose computation. He has published more than 200 papers in these fields, including 24 books, 16 chapters, 50 journal articles, and 112 conference papers. He has worked as a visiting researcher or professor at the University of Minnesota (USA), University of Girona (Spain), and the Technical University of Vienna (Austria). He is the associate editor of Computer Graphics Forum and is a member of the editorial board of Computers & Graphics. He received a Charles Simonyi Award in 2004, a Bolyai Award in 2005, and was elected as the Fellow of Eurographics in 2008. 

László Szécsi (born 1978) is an associate professor at the Department of Control Engineering and Information Technology at the Budapest University of Technology and Economics. He also lectured Computer Graphics at the János Selye University in Slovakia. He received his Ph.D. in 2010. His research interests include real-time computer graphics, non-photorealistic rendering, computer game programming, and programming of graphics cards both for rendering and for general-purpose computations. He is author of 43 publications, including 1 book, 7 book chapters, 10 journal articles, and 25 conference papers. He won the Bolyai Award of the Hungarian Academy of Sciences in 2012.

Back