László Szirmay-Kalos and László Szécsi
Weeks 1-14, 2x2 hours/week, 4 credits
Short Description of the Course:
This course teaches the basics of computer graphics, animation and game development. First, backgrounds in mathematics (analytical geometry of Euclidean and projective spaces, homogeneous coordinates and transformation by matrices) and physics (light transport, reflection/refraction, BRDF) are summarized; then the main elements of graphics production pipeline are examined. In the modeling section, we study the creation of polygonal and free form surfaces. In rendering, we first build a ray tracing system, then present the stages of an incremental rendering pipeline, its OpenGL API and hardware realization in the GPU. The rendering knowledge is extended by examining the principles of animation, and finally we develop a game engine and use it to implement a first person shooter game.
Aim of the Course:
This course teaches the principles of computer graphics and enables students to implement modeling/rendering/animation systems as well as 3D video games in a C++/OpenGL/Cg environment.
Programming skills in C++ or a similar object-oriented programming language (e.g. Java or C#), and basic mathematical knowledge (matrices, coordinate geometry, calculus) are prerequisites for this course.
Detailed Program and Class Schedule:
|Practical: Development environment setup.
Compilation and linking of a simple Anaglyph 3D stereoscopic rendering application.
|Practical: Drawing triangles and polylines. Moving them with keys and the mouse.|
|Assignment 1: Simple 2D game in OpenGL|
|Practical: Drawing various curves, adding/moving control points interactively.|
|Practical: Colorful curves. Implementation of a simple color selector interface.|
|Practical: Rotating and moving objects.|
Assignment 2: 2D drawing program
|Double practical: Ray casting with spheres.|
|Assignment 3: Ray tracing program|
|Double practical: textured, waving ocean surface.|
|Assignment 4: Game development I: modeling and rendering|
|Practical: Floating objects. User-controlled objects. Projectiles.|
|Practical: Naval battle game.
Assignment 5: Game development II: adding controls, physics and game play
Method of instruction:
The course consists of lectures (3 hours per week), practices (1 hour per week) and 5 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.
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 (each team is given a different assignment to talk of).
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)
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.