Software Rendering

back to main page

some recent projects of mine:

phLab6D - a map-viewer for Ken Silverman's game Ken's Labyrinth.

  • Completely rendered in SW
  • Uses your multi-core CPUs due to multi threading
  • Adds some map/view modes

The MT Suite

=> old demos with multi-threading, so that they execute faster on multi-core CPUs

Included are heightmap and voxel renderers. Make sure to get VXL files for running the voxel renderers. One possibility for obtaining VXL files is the following:
  • go to
  • download
  • run genall.bat

PH6DOF: 6 degree of freedom voxel engine - collection
[Software renderer]

download (~1.8MB) (11.7.2006)

NEW (19.4.2007):
source code to the VXL-viewer! (~677KB)

for VXL-data files (and other interesting demos/games/tools!)

When I first saw Ken Silverman's Voxlap-Engine I wanted to write a similar renderer at least (no .kv6 sprite-rendering or modifications to the landscape). I wrote the engine from scratch, based on the informations given in his forum Ken also took some time to answer additional questions of mine - thanks a lot! In the last week (the first week of July 2006) I added sky-rendering and fixed some clipping bugs.

The entry
motivated me to write a first-hit raytracer, too. Still I didn't put too much effort in it, so don't take it too serious!

The data and images included in the download were created by Ken Silverman and/or Tom Dobrowolski.

Added some new features to ph6dof:

  • height-interpolation ("smooth" surface) for the vrc-renderer

  • exact grid-traversal for the raycaster (+simple "faceshading")

  • simple water animation/reflection

download (~432 KB) (21.12.2006)

[ also includes a map that was made with my own landscape-generator :-) ]

I cleaned up my harddrive yesterday and found some older ph6dof versions. They use "simpler to write" equidistant sampling along the rays.

  • heightinterpolation

  • "pseudo" color-interpolation

  • the demo without any interpolation uses fixed point math to speed things up

Also included is a somewhat faster ("grid-exact sampling") height interpolating version. Be sure to put your height-/colormaps c1.jpg and h1.jpg, respectively, and a skytexture named toonsky.jpg into the same directory - just reuse the files that I include in most of my other ph6dof-downloads (also needs SDL.dll and SDL_image.dll).

download (~54KB) (2.10.2007)

Since I lack time, I didn't put the latest releases here yet...The raycaster (both the heightmap and the VXL-version) is MUCH faster now, but I want to fix some artifacts first. Right now there are only binaries for the Win32-platform, but i want to compile the source for Linux , too, so stay tuned.

Finally I made it ;-)

download (~195 KB) (23.5.2007)

The heightmap-raycaster now features focus-based depth-of-field blur effects and height- and colorinterpolation. The vertical ray coherence (vrc) - style renderer now uses backward-projection which results in a higher framerate when looking towards the horizon without the need for lower levels of detail!!!

I also included my random terrain-generator. It does not take any options and produces as its output the corresponding images.

Wrote a 6DOF software-scanline renderer in the summer holidays (2007). The design of how the terrain-data is transformed and how the vertices are then connected is inspired by the floating horizon algorithm. The algorithm was quite often used for 4DOF rendering back in the "old days" ;-)

I might be mistaken, but i consider the famous "Voxel"-Demo MARS a floating horizon engine, just to give an example...


  • height interpolation (automatically generated by the algorithm, no "extra" interpolation-calculations!)

  • color-interpolation (press 'i' to turn it on/off)

  • Sutherland-Hodgeman polygon clipping

  • Liang-Barsky line-clipping (for the wireframe-mode executable)

download (~113KB)

Note: the program expects an RGB height- and colormap (of equal dimensions called c1.jpg and h1.jpg) as well as an RGB image called toonsky.jpg.
Alternatively to loading c1.jpg and h1.jpg the program can be started with a number as its first parameter - then it will attempt to load C<number>.DTA and D<number>.DTA. If you own a copy of Novalogic's Comanche© you can fly over its terrain ;-)

You'll also need SDL_image (scroll down for a link).

back to main page

I heavily rely on GTK (Win32 runtime- and development environments), SDL and SDL_image.

Use the programs and the sources that are available on this site (and the "subsites") at your own risk - I am not responsible for any harm they may cause!
Site maintained by Peter Houska, Copyright 2005