Шейдер, создающий эффект черной дыры, которая искажает вокруг себя пространство и притягивает, неправильно работает
Пытаюсь сделать шейдер, создающий эффект черной дыры, которая искажает вокруг себя пространство и притягивает. Сделал формулу отобразив её на данном графике,
тут ясно видно, что "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 не умеет возводить отрицательные числа в степень, даже в целую. А у вас степень вообще нецелая...