Graphics ProgrammingLaajuus (5 cr)
Code: TT00CD96
Credits
5 op
Teaching language
- English
Responsible person
- Jani Immonen
Objective
In the Graphics Programming Course, you learn the basics of real-time 3D graphics and programmable pipeline programming. The course aims to provide students with a comprehensive understanding of computer graphics, including how to develop and implement 3D graphics applications that are both visually appealing and interactive.
Throughout the course, you learn about the key concepts of computer graphics, such as geometric transformations, shading models, and rasterization. You will also learn how to program graphics pipelines using modern, high-level graphics APIs such as OpenGL and Vulkan, and how to utilize modern graphics hardware to render 3D scenes in real-time.
In addition, the course covers fundamental topics such as lighting, texturing, and object-oriented graphics programming, enabling you to develop complex, visually rich 3D applications. You also gain an understanding of how to use graphics frameworks and libraries to accelerate the development of your 3D graphics applications.
EUR-ACE Competences:
Knowledge and Understanding
Communication and team-working
Multidisciplinary competences
Engineering practice
Investigations and information retrieval
Learning outcomes:
Throughout the course, you work on hands-on programming assignments, creating your own 3D graphics applications and learning to debug and optimize your code. By the end of the course, you have a deep understanding of real-time 3D graphics and the skills needed to develop and deploy high-performance graphics applications.
Content
In this course, you will learn the basics of real-time 3D graphics and programmable pipeline programming. The course aims to provide a comprehensive understanding of computer graphics, teaching you how to develop and implement visually appealing and interactive 3D graphics applications. You will learn key concepts such as geometric transformations, shading models, and rasterization, and how to program graphics pipelines using modern graphics APIs like OpenGL and Vulkan. The course also covers lighting, texturing, and object-oriented graphics programming, enabling you to develop complex, visually rich 3D applications. Additionally, you will gain an understanding of using graphics frameworks and libraries to accelerate your application development.
The course covers modern graphics programming using OpenGL. The course discusses topics such OpenGL Shading Language (GLSL) and modern OpenGL programming pipeline.
Qualifications
Basics in programming, Data structures and algorithms, Object-oriented programming.
Assessment criteria, satisfactory (1)
Sufficient (1): You are familiar with the basic topics discussed during the course. You are able to write programs using OpenGL with assistance and use existing shaders written in GLSL.
Satisfactory (2): You understand the most basic topics discussed during the course, however, you struggle to utilize this knowledge. You are not able to search for relevant information independently. You are able to write programs using OpenGL but use mostly existing shaders written in GLSL.
Assessment criteria, good (3)
Good (3): You understand the most important topics discussed during the course and are able to utilize this knowledge in the most basic cases. You are able to utilize information about the discussed topics. You are able to write simple programs using OpenGL and simple shaders using GLSL.
Very good (4): You understand the most important topics discussed during the course and are able to utilize this knowledge in most common cases. You are able to search and understand information about the discussed topics. You are able to write using OpenGL and shaders using GLSL.
Assessment criteria, excellent (5)
Excellent (5): You understand all topics discussed during the course and are able to use them in an innovative manner even in challenging situations. You are able to search and utilize information about the discussed topics independently. You are able to write programs using OpenGL and complex shaders using GLSL.