Aim of the course
The primary objective is to introduce 3D vector graphics, geometric transformations, creation of geometric 3D objects, lighting modeling, texturing and rendering techniques in real time. It is accompanied by gaining skills of using the OpenGL library and the GLSL shader language.
Introduction. Usage of computer graphics. Characteristics of vector and raster. The equipment of modern computer graphics. Discussion of the permanent and programmable graphics pipeline. Basics of OpenGL and GLSL. Draw basic objects in 2D and 3D. Geometric transformations and viewing in 3D, features of transformation matrix, joining of transformations, using the transformation matrix stack and projection. Local and global lighting models and their practical realization. 2D and 3D textures, and their superimposition and filtering. Multi-texturing, creating procedural and animated textures. Modeling selected geometric objects. Parametric and implicit surfaces. Modeling objects and natural phenomena for the artwork (plants, clouds, water surface, etc.). Overview and comparison of professional software for modeling 3D scenes, rendering and animation.
Overview of the course elements
Within aboratory exercises students are expected to create programs in C ++, performing basic functions using the OpenGL graphical library. Running programs in the Linux and MS Windows environments. Learning selected GUI systems and design a simple graphic interface. Implementation of selected algorithms of lighting and shadow-casting using GLSL language. Implementation of selected visual effects (flashes, explosions, fog, superimposing textures, 3D, etc.). Construction, based on previous exercises, of the final project.
1. Foley, van Dam, Hughues, Wprowadzenie do grafiki komputerowej, WNT Warszawa 1997
2. M.Woo, J.Neider, T.Davies, OpenGL - Programming Guide, Addison-Wesley 2009
3. Randi J. Rost et al. OpenGL Shading Language, Addison-Wesley 2009
4. R.S.Wright, M.Sweet, OpenGL-Księga eksperta, Helion 2005
5. K.Hawkins, D.Astle, OpenGL - Programowanie Gier, Helion 2003