An application using a basic DirectX 11 framework to demonstrate an understanding of shader programming and the programmable rendering pipeline.
Coder – solo project
As part of a graphics programming module, we were set coursework to create an application which demonstrated an understanding of shader programming using various stages of the programmable pipeline. I created an application which generates a mesh of a white sphere which is then passed to the gpu and rendered in an abstract form as a result of shader manipulation. Techniques demonstrated include: tessellation, vertex manipulation, fragmentation on the geometry shader, position-dependant colour manipulation, a post processing Gaussian blur effect and the implementation of an immediate mode gui which can modify all shader parameters at runtime for instant feedback.
All shaders were written by me and the imgui was integrated into the existing DirectX11 framework by me.
At the beginning of the project my aim was to make something visually interesting and abstract. As such I chose a fairly complex formula upon which to base my vertex manipulation, this created a good visual effect until it came to implementing lighting. The normal calculations could be simplified down to a set of 3 parametric equations each with 10+ terms. The margin of error for such unwieldy formulae was very large and despite much effort accurate normals could not be calculated. Therefore lights were not included in the final application, despite having previously been implemented with modifiable specularity/intensity/attenuation etc. In replacement of actual lights I calculated the colour values in the fragment shader based on the displacement from the centre of the sphere to create a light-like effect. In hindsight a much more sensible starting formula would have been chosen, which would give much easier to calculate normals.