The Fly

The Fly is a demo (non-interactive program that shows realtime graphics and plays some music). I and my fellow Paulius Liekis made it for Microsoft's Imagine Cup 2004 and it took second place in the worldwide finals! The official PR is here. Of course, we're really happy about that (but watch out for Imagine Cup 2005 :)).

The demo was made during Mar-Apr 2004, reusing lots of our previously written code.

Technical details

I did most of programming stuff, and a small amount of artwork (setting up lighting for lightmaps, some bumpmaps). The demo features:

  • Graphics effects, with several fallback paths (for pixel shader 2.0, 1.1 and fixed function hardware):
    • tangent space normal mapping, using over-the-edge diffuse lighting,
    • a mix of above and precomputed lightmaps, using ad-hoc method (some discussion here),
    • depth-of-field using two blurred versions of the framebuffer,
      (M.Kawase, "Frame Buffer Postprocessing Effects in Double-Steal", GDC2003).
    • fur rendering using extruded shells, (L.T,V.T) texture lookup for anisotropic lighting and some faking of self-shadowing,
    • simple projected shadows,
    • multi-layered terrain, with three detailed textures, "texture mix map" and precomputed lightmap,
    • water rendering with several scrolling bump-maps for water waves,
    • translucent and iridescent wings
      (N. Tatarchuk, C. Brennan in "ShaderX^2" and also a RenderMonkey example).
  • In code I made heavy use of DirectX9 and some of it's cool features (notably D3DX Effects Framework).


Zip file here (18.6MB). Requires DirectX9.0b runtime.
Looks best on a pixel shader 2.0 capable video card; looks worse on a pixel shader 1.1 card and looks like crap on no-pixel-shader card :)

The Fly in the fly

Thumbnails, click for a larger shot.

More info

Comments at
Review at (in Lithuanian)
Project page at