我正在尝试制作一个创建黑洞效果的着色器,它会扭曲自身周围的空间并吸引。我通过在这张图上显示它做了一个公式,在
这里可以清楚地看到“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;
}