Employers: Look here instead.

This website is horrendously out of date and contains my ancient university stuff. The deferred shading code/write-up still gets a fair amount of downloads so I've kept this page up.

Check out my blog for various articles on unit testing, fly-fishing, bongo tutelage and jumpstyle unicycle training. I may be lying.


Name: Mark Simpson
Email: MJSimpson (at) gmail dot com.
Age: 30
Location: Scotland
Wot I do: Software Engineer at eegeo
Degree: Computer Games Technology BSc with first class honours


Please note that to run the applications, you may need to download d3dx_34.dll. Unrar the .dll to your windows/system32 folder, or place it in the same folder as the .exe that is asking for it.

Deferred Shading. This was created as part of my honours project which comparatively evaluated deferred shading with multi-pass forward shading. The application features multiple pass forward shading and deferred shading renderers. It also features some basic scene & light culling, lighting sets (for the forward shading renderer), shadow sets, shadow mapping support for directional and spot lights and... more stuff. Some of the static meshes & textures in the scenes were created by other people; these are credited in the readme.

I received straight As for the planning, managing and execution of the project. The project was also recommended by the course leader for further dissemination.

System Requirements: Due to utilising the vPos register, you need a shader model 3.0 card to run this application. It also uses depth stencil surfaces for shadow mapping, so it may not run on ATI-based cards.

Downloads: Executable | Source | Dissertation

deferred shading; mixture of omni, spot and directional lights deferred shading; omni lighting deferred shading; visualisation of screen space light coverage. Overhead lighting has self-illumination deferred shading; visualisation of G-Buffer & Framebuffer

Terrain Generation. This was a third year deliverable for university but I've re-written it to work with Direct3D instead of OpenGL. The application dynamically generates new terrain features using a number of common techniques, calculates the vertex normals and, finally, calcuates a blend map based on either height or steepness of slope. This blend map is used to interpolate between two textures to make the terrain's appearance more interesting. Terrain can be loaded from and saved to a .raw heightmap. The application also features refractive, reflective water with depth modulation and a simplified Fresnel term; the water also uses alpha blending to smoothly fade out the water plane as it intersects the shoreline.

System Requirements: Graphics card with shader model 2.0 capabilities.

Downloads: Executable | Source

Water & Terrain Edge fading, Fresnel & terrain texture blending in action