Hello everyone!
I’m new so maybe I’m doing something wrong.
I have bg as a layer and I need to blur a part of it. Below is what I need.
Here is my current layer (I wanted a rotated background so I used a layer (not ground))
Hi!
Do you want it to be constantly rotating?
'Cuz if you just want it static, you can just use your manipulated image
Blur part should be transparent. This canvas is on top of another image. And I need to see the first image under blur part of canvas.
if you use a png with transparency, you’ll get that : )
like so,
Looks like a static camera solution. Is there a dynamic camera solution?
It is advisable to blur the layer without changing the png itself. Because we will rotate the image so that the line coincides with the objects that are on top.
Always, regardless of the camera position, the layer is 100% from the bottom to the middle, then it is blurred (and becomes more transparent) from the center to the very top.
you can try to do it via a postprocess then : )
I don’t exactly know what’s going on in that image, as you can’t see a border in the PG above.
Can you repro this in a PG? ty : )
here’s an example w/ an image
don’t see the borders here : O
Hello @Kkasya and welcome ![]()
Is it what you are looking for ?
@Heaust-ops I edited your shader, which was leading a white effect on top of alpha.
I’m adding the image and also resizing + moving the canvas, so that the limit is on the middle of the screen
it is awesome!
Guys, thanks a lot!

Everything here is in that line :
float factor = clamp((vUV.y - 0.5) * 5.0, 0., 1.);
Result would be :
float factor = clamp((position + rotatedUV.y - 0.5) * 1.0 / size, 0., 1.);
Taken over the rotated UV, so that the blur is rotated.
Here you go :

Thanks again! I changed it a bit and got what I wanted ![]()
vec2 rotatedUV = position + vUV - vec2(0.5, 0.5);
float scale = 0.7 / max(cos(rotation) + sin(rotation), 1.0);
float factor = clamp((vUV.y - 0.5) * 1.0 / size, 0., 1.);