- 1
- 0
Пытаюсь сделать размытие (что то похоже на blur но через rand) использую текстуру чтобы получить rgb и размыть его
вместо цвета мира видно это
blur.frag:
uniform sampler2D texture;
uniform vec2 rectSize;
uniform float smoth;
float calculator(vec2 pos, vec2 size, float smoth) {
return length(max(abs(pos) - size, 0.0)) - smoth;
}
float rand(vec2 uv) {
float a = dot(uv, vec2(92., 80.));
float b = dot(uv, vec2(41., 62.));
float x = sin(a) + cos(b) * 51.;
return fract(x);
}
void main() {
vec2 texCoord = gl_TexCoord[0].st;
vec2 rect = rectSize * 0.5;
vec2 uv = texCoord;
vec2 rnd = vec2(rand(uv), rand(uv));
float smoothedAlpha = (1.0-smoothstep(0.0, 1.0, calculator(rect - (gl_TexCoord[0].st * rectSize), rect - smoth - 1.0, smoth)));
uv += rnd * .05;
vec3 va = texture2D(texture, uv).rgb;
gl_FragColor = vec4(va, smoothedAlpha);
}
вместо цвета мира видно это