Assignments
Sign up for a Lab Time using this link : https://sam.cs.lth.se/LabsSelectSession?occasionId=890
The course has five mandatory programming assignments which we recommend doing in pairs, but they can be done individually. An overview of the assignment will be presented at a dedicated seminar, and the instructions are available in a PDF document. The assignments take more time than the 2 hour lab session each week. You should work on the lab before the lab session, and bring your questions to the lab session, and get the final assignment approved. To have your assignment approved, you are to present it during your lab time. The objective is to present your solution the week after the corresponding seminar. If working in pairs, Both students in a pair must be present, and answer questions about their work in order to pass. If you cannot present at the designated lab time, please contact the course lecturer.
Schedule
Seminars are on Wednesday at 10 in M:Teknodromen (M:1201).
4/9 | Introductory seminar: OpenGL and C++ | |
11/9 | Seminar 1: Solar system | |
18/9 | Seminar 2: Tessellation & Interpolation | |
25/9 | Seminar 3: Shaders | |
2/10 | Seminar 4: Water shader | |
9/10 | Seminar 5: Game |
During seminars
During the seminars we will solve some web-based exercises that can be found here: Exercises
During labs
The software framework we use is available on GitHub.
For compiling on Windows we recommend using MS Visual Studio C++ community edition 2022. For compiling on MacOS we recommend using XCode.
The documentation of the framework is available here.
Instructions on how to setup the environment to successfully build and run the provided code can also be found on GitHub.
The textures and objects used in the assignment can be found here.
To help you solve the lab assignments, a reference implementation is provided for you to compare to (there might be slight differences with the desktop version): Lab reference implementation
GLSL syntax highlighting
For Visual Studio 2017, 2019 and 2022
Using GLSL language integration: if you are on your own computer, you can retrieve it directly through Visual Studio’s extensions menu
For Vim and NeoVim
Using CaffeineViking’s vim-glsl (supporting GLSL 1.10 through 4.60, and the GLSL variant used for Vulkan shaders), or beyondmarc’s glsl.vim (supporting GLSL 3.30 through 4.60, and highlights deprecated and unsupported keywords).