Nov 132013
Northern Lights

Last week we went to Reykjavik in the hope of finally spotting the aurora borealis. It was my fourth time in Iceland with no luck on the previous visits (it was generally cloudy) so I was hoping for good weather. Luckily the day we arrived it was completely clear all night, so we were hopeful as we […]

Oct 212013
Fractal rendering (with runnable code)

The screenshots in my graphics posts are from my raymarching renderer, and mainly consist of boxes and spheres. That’s a bit boring so I thought I’d have a look for something more interesting, and came across the Syntopia blog talking about raymarching 3D Mandelbulb fractals. I plugged the code into my renderer and it worked a treat. Here’s a video […]

Oct 042013
Anatomy of a renderer 11 – High Dynamic Range (part 1)

High Dynamic Range (HDR) rendering is a way of coping with the large possible range of brightness in a scene, and how to render that to a screen. There are a few parts to this which are all required to get good results. In this part I’ll cover the initial rendering, tone mapping and dynamic exposure control. […]

Sep 162013
Miniatures gallery

I’ve got a reasonably well painted Warhammer 40K Chaos Marine army, so I thought I’d show off a few pictures (click through for larger images). I’ve not really found the time to do any painting for over a year now (too much blogging, programming, gaming etc) but some of the new Chaos Marine miniatures look really nice so […]

Aug 022013

[This is a bit more opinionated and political than I would normally post, but I think it’s important. I don’t care which party runs the country as long as it’s run fairly and honestly, according to logic, reason and evidence. Unfortunately that sounds hopelessly naïve. This contents of this post are hardly controversial, but it’s just a part of […]

Jul 012013
Anatomy of a modern renderer 10 - Bokeh Depth Of Field

So far I’ve covered the basics of getting objects on the screen with textures, lighting, reflections and shadows. The results look reasonable but to increase the realism you need to more accurately simulate the behaviour of light when a real image is seen. An important part of this is the characteristics of the camera itself. One […]

Jun 132013
Chelteham Science Festival

I hadn’t been to Cheltenham Science Festival before so last Friday I popped down for the day. I went to half a dozen presentations so here’s a summary of the interesting bits. Eight Great Technologies This was a talk by David Willetts, the Minister for Universities and Science, giving us reasons to be optimistic about the future […]

Jun 082013
7 Girl Bands

Hardly anyone I know shares my taste in music. To potentially help alleviate this I present a selection of great female-fronted bands who aren’t as well known as they should be. (Looking back at my selection it would appear I mainly like musical duos and singers with red or black hair…) Anyway, in no particular order: 1. Helalyn Flowers Helalyn Flowers […]

Jun 042013
Anatomy of a modern renderer 9 – shadow mapping

The last basic rendering technique to talk about is shadowing. Shadows are really important for depth perception, and are vital for ‘anchoring’ your objects to your world (so they don’t look like they’re just floating in space). Shadowing is a very popular topic for research, so there are loads of variations on how to do […]

May 142013
Economic lessons of Eve Online

I’ve been playing Eve Online on and off since 2006. It’s a very complex game with 500000 active accounts, all playing on the same server. What this means is that it has the most interesting economy of any game out there due to the huge number of interacting players, complex supply and manufacturing chains and a […]

May 012013
Anatomy of a modern renderer 8 – environment mapping

The next lighting technique I want to cover is environment mapping with cube maps. Environment mapping Environment mapping is another form of specular lighting. When I spoke about specular lighting here, I was talking about simulating the light reflected from one bright light source. You can repeat the calculations for multiple light sources but it […]

Apr 022013
Anatomy of a modern renderer 7 – normal mapping

Last time I spoke about specular lighting, which combined with diffuse and ambient from the previous article means we now have a good enough representation of real-world lighting to get some nice images. However, this lighting isn’t very detailed. Lighting calculations are based on the orientation of the surface, and the only surface orientation information we have […]

Mar 312013
Purple Space

Here’s a quick video of something I’ve been working on recently: This is just an experiment in coming up with a more interesting ray-marched scene to test out graphics techniques. It may be developed into a proper demo at some point, but that probably requires more artistic input than I’m able to give, so we’ll […]

Mar 122013
Anatomy of a modern renderer 6 – specular lighting

Last time I talked about basic ambient and diffuse lighting.  This is good for perfectly matt surfaces, but every real surface has some degree of specularity, which is when light is reflected off a surface to give a shiny appearance.  You may not think of most objects as having a shiny surface, but it’s a […]

Mar 022013
A couple of shooters - Planetside 2 and Wolfenstein: Enemy Territory

Lately I’ve mainly been playing a couple of shooters at different ends of the same evolutionary path.  They are Planetside 2 and Wolfenstein: Enemy Territory (henceforth called ET). Wolfenstein: Enemy Territory I’ll start with ET, as it’s pretty old now and you might not have come across it.  It’s a free game that started out […]

Feb 232013
Ray-marching soft shadows

A while back I had a quick search for soft shadowing techniques for ray-marching rendering, but somehow I didn’t manage to find anything very useful.  So I just had a play around and came up with something.  Here’s the video from last time again: Then I did another search and found almost exactly the same technique described here […]