Шейдер, создающий эффект черной дыры, которая искажает вокруг себя пространство и притягивает, неправильно работает

Пытаюсь сделать шейдер, создающий эффект черной дыры, которая искажает вокруг себя пространство и притягивает. Сделал формулу отобразив её на данном графике, тут ясно видно, что "y" будет в диапазоне от 0.0 до 1.0 (небольшие погрешности не страшны). Полностью перенёс эту формулу в новый шейдер в shadertoy, перепроверил всё сотни раз, пробовал вычислять разными способами (проводя математические операции над простыми числами, а не над векторами) но всё тщетно. Почему то на (0.5, 0.5) находится пиксель с текстуры (0.0, 0.0).

(сам шейдер и код)

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
    vec2 uv = fragCoord/iResolution.xy;
    vec4 col = texture(iChannel0, pow(uv -.5, vec2(.6)) * .76 + .5);
    fragColor = col;
}

Ответы (1 шт):

Автор решения: HolyBlackCat

GLSL не умеет возводить отрицательные числа в степень, даже в целую. А у вас степень вообще нецелая...

→ Ссылка