implementation details:[
http://www.gamasutra.com/features/20021011/lengyel_01.htm
]