Category: Research

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 low sampling rates are used, output suffers from excessive variance. Next step is that of implementing a better sampling strategy…

Panagia Angeloktisti Church (Kiti) model courtesy of Jassim Happa, University of Warwick.


For the last six months or so, I’ve been working with two colleagues of mine on a portable simulation platform called Meson. The platform is feature-rich and will provide a real-time 3D rendering engine, physics and scripting, besides a core set of classes for collections, regular expressions, resource management, maths, memory management, event management, random number generation, logging and more. The four main components are called Common (original, eh?), Gravitas, Cuneus and Vistas. Common is the core functionality module mentioned earlier and is being developed jointly by the three of us; besides, Colin is working on Gravitas, the physics engine, Gordon is working on Cuneus, a virtual machine-based scripting engine, and I am working on Vistas, the 3D engine. Development is being carried out on Microsoft Windows platform, although target platforms include Linux and OS X.

The deadline prefixed for this iteration of Meson is the end of September, when each one of us will have to deliver a dissertation on his respective subject area. By that time, we will have also developed a demonstrative application showing the capabilities of each of the subsystems merged together; the sum of the parts. We have unanimously consented to a driving simulation, although at the stage nothing is cast in stone. Development being in its early stages, not much can be shown; the screen shots attached demonstrate only rudimentary elements such as displaying a mesh and applying normal and parallax mapping to it, or simple physics actuated among boxes.

Having laid the first stone, I hope to post updates regularly, keeping a log of the project.