In the context of game engines with graphical user interfaces, shader programs for GPUs (graphics processing units) are an asset for game development that is often used by artists and game developers without knowledge of shader programming. Thus, it is important that non-programmers are enabled to explore and exploit the full potential of shader programs. To this end, we develop principles and guidelines for the design of user-centered graphical interfaces for shaders. With the help of several examples, we show how the requirements of a user-centered interface design influence the choice of widgets as well as the choice of the underlying shader parameters.
The examples in the previous section illustrate how to construct artist-friendly shader parameters from the six principles and the guidelines proposed in Sections 3 and 4. Not only can these principles and guidelines serve as a checklist for specific sets of parameters, but they can also guide shader programmers to find more artist-friendly parameters in order to provide a better user experience.
The principles and guidelines were derived by applying results from research on user-centered design to GPU-based shader programming. One of the important results is how user-centered design influences the choice and mappings of shader parameters. Furthermore, the examples show that an additional preprocessing step is useful in many cases in order to map user-specified parameters to low-level shader parameters. For best performance, however, changes to the shader programs are inevitable even if such a preprocessing step is employed.
Future work has to experimentally validate the proposed principles and guidelines by applying them to more shaders and conducting appropriate user tests.