Category: Graphics
-

Blaze (Re-redux) Part 2
In my last Blaze-related post, I focused on improving performance without disturbing the structure too much. Asynchronous scrolling, dispatch tables, and a handful of other optimisations gave us a smoother, more responsive game. That worked – perhaps a little too well. Once the performance issues were out of the way,…
-

Blaze (Re-Redux)
I’ve been somewhat busy working on the next module for Ataru over the past few weeks, so I decided to take a break. I have been writing inordinate amounts of Z80 assembly language, and a crazy thought possessed me: what if I picked up Blaze’s train wreck of a source…
-

Legend of ESPer Tetris
Sometimes you stare at the mountain of dev boards on your desk and realise that none of them actually play Tetris. This is how bad ideas are born. I could have grabbed a phone, installed one of the thousand clones, and moved on with my life. Or pulled out my…
-

Card Path Tracer
Some time ago I came across an excellent analysis of Andrew Kensler’s minimal ray tracer (a.k.a the business card ray tracer) whose entire source code could fit on the backside of a business card. The output is shown below: Being stuck at home, sick with a debilitating cold, I thought I’d…
-

Particle file format
One of the problems plaguing the distributed version of Illumina PRT is that of resource management. Precisely, when multiple task groups are running concurrently, switching resources from one task group to another can be a great time sink. A PE’s current data set (geometry, acceleration structures, textures, etc) has to…
-

An update long due
These last weeks I was working on optimising the Interactive Global Illumination (IGI) integrator for Illumina. The implementation uses a technique known as interleaved-sampling, where the image space is divided into square regions, usually of 3×3 or 4×4 pixels, and the rays shot from the viewer through each pixel of the grid…
-
Image-based Lighting
In the last few days I’ve been working on integrating image-based lighting into the Illumina renderer. At the moment, I have a preliminary setup running on light probes from low-dynamic range (LDR) images. The light probes are sampled using a simple cosine-weighted distribution which is far from optimal. In fact, when…
-
Scene script files
I have finally added a means of loading scene scripts into the renderer… generated a render of Sponza to celebrate!
-

Illumina PRT – A distributed physically-based renderer
In the last couple of months I’ve been doing some work on a cross-platform distributed renderer, Illumina PRT. The renderer is still in its infancy and requires a substantial amount of work before it can be called decent by any standard. Hopefully I’ll be documenting any progress made in the…
-
Sandbox applications
For the last few days we’ve all been working on wrapping up the projects and writing the dissertations which are due in three weeks’ time. I have created an application object for Vistas, allowing users to create and set up applications easily and quickly. Consequently I built a basic sandbox…