SFTtech / openage

Free (as in freedom) open source clone of the Age of Empires II engine 🚀
http://openage.dev
Other
12.66k stars 1.12k forks source link

Optionally check if all uniform values have been set #1681

Open heinezen opened 4 weeks ago

heinezen commented 4 weeks ago

Required Skills: C++ (understanding OpenGL terminology is helpful too)

Difficulty: Easy

Whenever we want to change something in the shader for an object, we use a UniformInput object to store the values. When the object is rendered, the data from the uniform input is passed to the GPU, e.g. via OpenGL. The definitions of the uniform data rypes are stored in the ShaderProgram class.

During rendering, the GPU does not strictly require that all uniform values have to be set for rendering to happen. However, when a uniform value is not set, e.g. when someone forgets to set pass it to the uniform input, this often leads to rendering errors, or worse: nothing being rendered at all. This is often infuriating to debug as it not always clear from the start whether the value was just forgotten or another error produces the rendering problems. To mitigate these issues, we should add a way to check if all uniform values for a uniform input have been set.

To try out the renderer and see how setting uniform values work, check out renderer demo 4 by running the following command:

./run test -d renderer.tests.renderer_demo 4

Tasks:

Further Reading

AdamYChe commented 1 day ago

Hey, I think I'll try this issue out.

heinezen commented 1 day ago

@AdamYChe Nice! If you have any problems, contact us in our chatroom