http://http.developer.nvidia.com/GPUGems3/gpugems3_ch26.html