Wednesday, December 31, 2014

Photon Mapping

With my latest game, The Little Plane That Could launched, it gave me a good opportunity to start some experimental coding. I would like to crack the challenge of real time indirect lighting. My idea is to use voxel-geometry only, and run a photon mapper on this geometry. Because the geometry is simple, the intersection tests (AABB vs ray) may be fast enough for real time use.

Below is an early result, where I shoot photons for direct light only, no bounces yet. It shows the raw photon hits, and a low-pass smoothed version of it. The light source is not visible, but is not too far above the pillar.

I also tried flat shading the voxel faces based on the number of photons that hit it. The discontinuity between faces is too distracting though. So the next step is smooth shading the quads. A first attempt with Gouraud shaded quads looked pretty horrible, so I need to rethink that.

Tuesday, December 23, 2014

The Little Plane That Could

This is just a heads-up that my new game The Little Plane That Could has been released for iOS, Android and GNU/Linux(64bit).

It was made available for Oculus Rift (Win64) earlier and a Mac OSX version is still in the pipeline.

Its highlights are the great physics, the convincing AI pilots and the immersive 3D Audio via OpenAL. To run the GNU/Linux variant (free to try, pay-what-you-want) you need to install its requirements using:

$ ./apt-get install libopenal1
$ ./apt-get install libalut0
$ ./apt-get install libsdl2

I've tested it with Ubuntu 14.04 LTS. And it requires a gamepad to run. If your gamepad is not supported by SDL2, you may have luck with adding it to the gamecontrollerdb.txt file.