uniform vec2 C[N]; // Массив констант Cn
uniform vec2 D[N]; // Массив констант Dn
void mainImage(out vec4 fragColor, in vec2 fragCoord)
{
vec2 z = fragCoord.xy; // Значение z
vec2 z_next = z;
vec2 sum_C = vec2(0.0); // Сумма для Сn
vec2 sum_D = vec2(0.0); // Сумма для Dn
// Проходим по всем членам ряда
for (int i = 0; i < N; i++)
{
// Суммируем все значения Cn и Dn
sum_C += C[i] * pow(z, float(i + 1));
sum_D += D[i] * pow(z, float(i + 1));
// Вычисляем следующее значение z
z_next = z - sum_C / (1.0 + sum_D);
}
fragColor = vec4(z_next, 0.0, 1.0);
}