Тут особо нечего сказать, потому вот функция, которая возвращает интенсивность
static inline float vignette_cos4(float2 uv, constant Parameters& params) {
float2 d = uv - params.center;
float2 xy = float2(d.x * params.aspect.x, d.y) * 2.0;
float f2 = params.fRel * params.fRel;
float r2 = dot(xy, xy);
float cos2 = f2 / (f2 + r2);
float V = cos2 * cos2;
return mix(params.minV, 1.0, V) * params.gain;
}
Тут добавлены минимальное значение и усиление в параметрах, чтобы "можно было выбирать" (с).