Computer Graphics and Game Technology

Course description


  1. Introduction.
  2. Basic math.
  3. Affine transformations, coordinate systems, homogeneous coordinates. Projections.
  4. Representations: polygons, subdivision surfaces, parametric curves.
  5. Local illumination and shading.
  6. Texture mapping.
  7. Graphics pipeline: culling and clipping, rasterisation, z-buffer.
  8. Shaders
  9. Collision detection.
  10. Space partitioning methods.
  11. Colors.
  12. Global illumination: raytracing.


Students will implement an interactive game. Exercises will include an introductionary course on OpenGL and Unity and individual project work with final public presentation of results.

Course is carried out on study programme

Multimedija 1. stopnja

Objectives and competences

The objective is to present students the programming and algorithmic background of computer graphics and games. When completing the course, students will be able to gain the following competences:

– the ability to understand and solve professional challenges in computer and information science.

– the ability to apply acquired knowledge in independent work for solving technical and scientific problems in computer and information science; the ability to upgrade acquired knowledge.

– the ability to independently perform both less demanding and complex engineering and organisational tasks in certain narrow areas and independently solve specific well-defined tasks in computer and information science

– the ability to independently develop interactive 3D applications and games.

Learning and teaching methods

Lectures with practical demostrations, laboratory work under the supervision of assistants.

Intended learning outcomes

After the completion of the course the student will be able to:

– understand the mathematical background of basic computer graphics algorithms

– know the different representations of 3D objects

– understand the inner workings of the graphics pipeline

– understand the basics of optimization techniques needed to develope interactive graphical applications

– understand the principles of low-level and high-level 3D graphics programming

– develop an interactive 3D graphical application or game using low-level or high-level programming libraries.

Reference nosilca

1. LESAR, Žiga, BOHAK, Ciril, MAROLT, Matija. Evaluation of angiogram visualization methods for fast and reliable aneurysm diagnosis. Medical imaging 2015 : image perception, observer performance, and technology assessment : 25-26 February 2015, Orlando, Florida, United States.

2. BOHAK, Ciril, SODJA, Anže, MAROLT, Matija, MITROVIĆ, Uroš, PERNUŠ, Franjo. Fast segmentation, conversion and rendering of volumetric data using GPU. IWSSIP 2014 : proceedings, (International Conference on Systems, Signals, and Image Processing (Print), ISSN 2157-8672), 2014, str. 239-242.

3. MAROLT, Matija. A connectionist approach to automatic transcription of polyphonic piano music. IEEE trans. multimedia. [Print ed.], str. 439-449, ilustr. [COBISS.SI-ID 4203860]

4. MAROLT, Matija. A mid-level representation for melody-based retrieval in audio collections. IEEE trans. multimedia. [Print ed.], Dec. 2008, vol. 10, no. 8, str. 1617-1625, ilustr. [COBISS.SI-ID 6908756]

5. PESEK, Matevž, LEONARDIS, Aleš, MAROLT, Matija. Robust real-time music transcription with a compositional hierarchical model. PloS one, ISSN 1932-6203, Jan. 2017, vol. 12, no. 1, str. 1-21 [COBISS.SI-ID 1537322179]

Celotna bibliografija je dostopna na SICRISu:

Study materials

  1. Nikola Guid: Računalniška grafika. Univerza v Mariboru, FERI.
  2. D. Hearn, M.P. Baker: Computer Graphics with OpenGL, Pearson Prentice Hall, NJ USA.
  3. D.H. Eberly: 3D Game Engine Design, Morgan Kaufman Publishers, CA USA.

Bodi na tekočem

Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška cesta 25, 1000 Ljubljana

E: T:  01 4768 411