Module also offered within study programmes:
General information:
Code:
UBPJO-015
Name:
Computer graphics
Profile of education:
Academic (A)
Lecture language:
English
Semester:
Spring, Fall
Responsible teacher:
Alda Witold (alda@agh.edu.pl)
Academic teachers:
Alda Witold (alda@agh.edu.pl)
Module summary

Students will learn how to develop a graphics program with moving camera and moving independent hierarchical objects.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Student understands the role of computer graphics and its influence on different areas of everyday life Activity during classes
Skills
M_U001 Student can implement OpenGL illumination model Completion of laboratory classes
M_U002 Student can prepare a graphics program with moving camera and moving independent hierarchical objects Completion of laboratory classes
M_U003 Student can implement different types of texture mapping Completion of laboratory classes
M_U004 Student can implement interactive graphics program which handles external events from different devices.
Knowledge
M_W001 Student has knowledge about the structure and capabilities of OpenGL library Test
M_W002 Student knows and understands basic ideas of computer graphics Test
M_W003 Student knows and understands geomtry transformations in 3D, illumination models and texture mapping Test
M_W004 Student knows and understands advanced real-time rendering techniques Test
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Student understands the role of computer graphics and its influence on different areas of everyday life + - - - - - - - - - -
Skills
M_U001 Student can implement OpenGL illumination model - - + - - - - - - - -
M_U002 Student can prepare a graphics program with moving camera and moving independent hierarchical objects - - + - - - - - - - -
M_U003 Student can implement different types of texture mapping - - + - - - - - - - -
M_U004 Student can implement interactive graphics program which handles external events from different devices. - - + - - - - - - - -
Knowledge
M_W001 Student has knowledge about the structure and capabilities of OpenGL library + - - - - - - - - - -
M_W002 Student knows and understands basic ideas of computer graphics + - - - - - - - - - -
M_W003 Student knows and understands geomtry transformations in 3D, illumination models and texture mapping + - - - - - - - - - -
M_W004 Student knows and understands advanced real-time rendering techniques + - - - - - - - - - -
Module content
Lectures:
  1. Introduction to Computer Graphics. Basic ideas (2 hrs.)

    Classification of computer graphics . Differences between raster and vector graphics, 2D and 3D graphics. Analysis of the basic forms of fixed and programmable graphics pipelines. Brief description of graphics hardware. Review of computer graphics applications in various disciplines of science and technology.

  2. Shadow mapping (2 hrs.)

    Basic algorithms for shadow creation. A simple shadow mapping on the plane. The usage of volumetric shadows. The usage of shadow maps.

  3. Surface modeling (2 hrs.)

    Modeling using parametric curves and surfaces: Bezier and NURBS. Implicit surfaces. Marching cubes algorithm.

  4. Advanced illumination models (2 hrs.)

    Ray tracing method. Global Illumination. Reflection and refraction rays. Optimization methods for ray tracing. Monte Carlo ray tracing. Photon mapping.

  5. Making and rendering complex scenes (2 hrs.)

    Optimized rendering of complex scenes. Shading algorithms. Discussion on ‘sort first’ and ‘sort last’ methods. Parallel and multi-display rendering.

  6. Visual modeling of natural phenomena. Future of computer graphics (2 hrs.)

    Concluding lecture. Basics models for visual modeling of natural phenomena. Comparison of physical and non-physical models. Presentation of the prospects for computer graphics.

  7. Introduction to OpenGL (2 hrs.)

    General ideas and history of OpenGL. Evolution of the library and fundamental differences in currently available versions. Discussion on library construction, basic functions, constants and system variables. Presentation of supporting libraries: freeglut – for graphical interface and event handling, Glew – for checking the capabilities of graphics hardware. Representation of geometric objects using a mesh of polygons. A structure of a typical OpenGL program.

  8. Architecture and programming of graphics processing units (2 hrs.)

    Logical structure of GPU, description of selected examples. Discussion on cooperation CPU and GPU. The basics of the GLSL shaders language and the rules of including it into OpenGL code.

  9. Two OpenGL programming styles (2 hrs.)

    Traditional approach to OpenGL programming in Compatible Mode and current Core Mode. Discussion on VBO and VAO buffers. Comparison of the advantages and disadvantages of both approaches. Examples.

  10. Geometry transformations (2 hrs.)

    3D transformations. Discussion on affine transformations. Matrix representation of transformations. Transformations by using OpenGL functions and direct manipulation on matrices. Merging transformations. Interpretation transformation in local and global coordinate systems. Movement of objects, and camera movement. Projection: types, characteristics and projection matrices.

  11. Stack and hierarchical objects (2 hrs.)

    Discussion on changes in the coordinate system by putting transformation matrices on the stack. Building complex objects with many degrees of freedom. A detailed discussion of examples, e.g ‘solar system’ and ‘walking robot’.

  12. Color Perception. Illumination models (2 hrs.)

    A brief discussion on color theory and basic models of color. General discussions about the complexity and efficiency of the lighting model. Discussion on local ADS basic model. Using normal vectors in the calculation of lighting. Discussion on Phong, Blinn and Gouraud models of lighting.

  13. Raster operations (2 hrs.)

    Overview of raster operations in OpenGL. Copying data blocks. The implementation of a sprite objects. Z-buffer and its features.

  14. Basic texture mapping (2 hrs.)

    Basic concepts of textures and their parameters. Loading texture from file. Textures as OpenGL objects. Texture mapping on geometric objects.

  15. Advanced texture mapping (2 hrs.)

    Multitexturing, combining textures with lighting, mipmapping technique. Using textures to map the environment (sphere mapping, cube mapping). 3D textures.

Laboratory classes:
Exercises in computer graphics lab.

  1. Set and visualize simple 3D scene built from ready-made objects (2 hrs.).
  2. Manipulating with geometry transformations. Flying over the scene (2 hrs.).
  3. Stack of transformation matrices. Construction of hierarchical objects (2 hrs.).
  4. Light modeling (2 hrs.).
  5. Texture mapping(2 hrs.).
  6. ‘Sphere mapping’ and ‘cube mapping’. Special effects (2 hrs.).
  7. Putting the known elements into one program (2 hrs.).
  8. Presentation of the final program (1 hr.).

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 112 h
Module ECTS credits 4 ECTS
Participation in lectures 14 h
Realization of independently performed tasks 30 h
Participation in laboratory classes 14 h
Preparation of a report, presentation, written work, etc. 24 h
Preparation for classes 30 h
Additional information
Method of calculating the final grade:
  1. To get a positive final grade it is necessary to obtain a positive evaluation of the lab exercises and successfully pass the final test.
  2. The weighted average of the ratings of the laboratory (75%) and lectures (25%) obtained in all attempts is calculated.
  3. We determine the final grade based on the formula:
    if avr> 4.75 then final grade := 5.0 else
    if avr> 4.25 then final grade := 4.5 else
    if avr> 3.75 then final grade := 4.0 else
    if avr> 3.25 then final grade := 3.5 else final grade := 3
  4. If a positive assessment of the lab and lecture are obtained in the first term and final evaluation is less than 5.0 is the final evaluation shall be increased by 0.5
Prerequisites and additional requirements:

Elementary matrix algebra. Basic skills in C/C++ programming.

Recommended literature and teaching resources:

Recommended literature and teaching resources not specified

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

None