Вот алгоритм, реализующий туман.
HAZE_RED - красная компонента тумана
HAZE_GREEN - зеленая компонента тумана
HAZE_BLUE - синяя компонента тумана
Level - плотность тумана
r,g,b - компонент пиксела
Код написан на языке С.
double Dr,Dg,Db;
// compute a delta r,g,b
Dr=((double)HAZE_RED-r)/Level;
Dg=((double)HAZE_GREEN-g)/Level;
Db=((double)HAZE_BLUE-b)/Level;
r=r+Dr;
g=g+Dg;
b=b+Db;
r=(r>255.0)?255.0:r;
g=(g>255.0)?255.0:g;
b=(b>255.0)?255.0:b;
// end of sample
Написал Д. Поляков.