http://http.developer.nvidia.com/GPUGems/gpugems_part01.html