In my game, I use SmoothDamp to move the camera around. So when the camera moves close to the player, its speed reduces rapidly, which will make the sprites look laggy. Applying the shader fixes the problem.
Here's an example, the camera use SmoothDamp to move to the left, wait a couple of seconds, move to the right, and repeat. The left image is laggy (look closely to the edge of the pixels) and the right image is ok. The top text (which is just a normal sprite) is laggy and the bottom one is good.
But there's another problem: the bloom effect. Here's an example. If you apply the bloom effect to a sprite, then it isn't noticeable. But in my case, I randomly generated a bunch of stars on a texture that consist of a few bright dots in a dark background. How can I fix it?
Edit: To be more specific, the shader for generating the stars is here:
uv.x *= ratio; // The texture isn't square and I want the noise to stretch rather than tile.
// Pixelate the texture
uv *= pixelateAmount;
uv = floor(uv);
uv /= pixelateAmount;
// Star generation
float star = GetNoise(uv, noiseScale);
star = smoothstep(minValue, maxValue, star);
star *= GetMovingNoise(uv); // I have another noise that change its scale over time so that the star value isn't static
vec3 col = star * starColor * brightnessScale;
col += backgroundColor; // This will make black pixels have background color (it also make normal stars a little brighter but I don't care)
What I want to know is when should I apply the fat pixel shader to the star shader (for example, calculating the correct UV first then pass into the star shader). The bloom effect I'm using is from Unity's URP which is implemented based on this article (13-tap downsampling and 9-tap upsampling with tent filter).