glitter is composed of tutorial tasks designed to build a lightweight OpenGL API. It is written in C++ and runs on Linux, and Mac OS. It provides a foundation for the homework assignments in the course titled Bases of Image Synthesis taught at ENSICAEN. The framework is inspired by NORI, a ray tracer originally designed by Wenzel Jakob for tutorials at ETH Zürich.
While glitter provides much support code to simplify your development work as much as possible, the code that you will initially receive from us does very little: it initializes an openGL context and launches a main loop. What is lacking is the actual OpenGL routine calls (state variable, and openGL settings, draw call, etc.).
Your task will precisely be to extend this system to a full-fledged OpenGL renderer as part of programming assignments and your final project. To do so, you are going to implement classes that are very simple facades to basic OpenGL objects (Buffers, VAO, Shaders, ...). More sophisticated abstraction have been discarded on purpose for pedagogical reasons.
The goal of these exercises is to help you create the foundation of a good renderer for subsequent assignments and the game project competition. The task descriptions may contain more specific instructions on what has to be implemented.
We would appreciate any comments or criticism to improve the projects in future years.
You may find the following general references useful: