DirectX11 Demo

The Project

An application using a basic DirectX 11 framework to demonstrate an understanding of shader programming and the programmable rendering pipeline.

My Role

Coder – solo project

Project Description

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.

My Contribution

All shaders were written by me and the imgui was integrated into the existing DirectX11 framework by me.

Learning Outcomes

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.

Links

ProjectReport

iconmonstr-github-1-240

 

20f121ebac00cd78068c1d54a6d94702powerHighfrequencyLowexplodeHighblurNeighboursHigh

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s