forked from: forked from: forked from: perspective projection bgstaal

Taken from:
http://bgstaal.net/blog/?p=57