-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
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:
- Implement an
is_complete(..)method forGlUniformInputthat checks if all uniform values have been set. You can accomplish this easily by iterating through theupdate_offsvector and testing if theusedflag has been set. - Add
is_complete(..)checks to the renderer demos in https://github.com/SFTtech/openage/tree/master/libopenage/renderer/demo
Further Reading
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Status