• 2D
  • Pixel sprite blurred while moving

Hello Godot community,

I have a problem when I try to move pixel art sprites, they become all strange and blurry while in movement. I've searched everywhere for a solution but none of the things I tried worked.

Import setting are correct - no filter. Pixel Snap enabled in Project Setting.

I made a video to showcase the problem : youtu.be/fxqs2YKETTw

It's a simple player scene with a Kinematic body and very basic movement code. Here the display size is 640 * 360, in viewport mode, and I scaled up the sprite for demonstration purpose, but this will happen regarless of these settings.

Thanks in advance for your help.

Thank you for your answer.

My screen refresh rate is 60 Hz, the website you've linked return 60 frame per second, and so does the scene inside the engine - Engine.get_frames_per_second() return 60.

However the ghosting test on testufo.com seems positive. I didn't know what ghosting was so I made some researchs. From what I understand, it would come from my monitor ? I find it surprising, if that's the case, since I've played a lot of pixel art games and never have that problem before. Plus it's not like the monitor is old (I use https://iiyama.com/gl_en/products/prolite-xu2292hs-b1/)

Another thing that troubles me is that at low UFO speed, I have no ghosting at all on testufo, while the blurry effect persist in godot even if I set the movement speed to a low value, plus the movement is strangely irregular and jaggy, which ghosting does not explain, right ?

Anyway, is there anything I can do about ghosting in godot ? With a small display window resized in full screen, the motion blur is really horrible...

IPS can be somewhat prone to ghosting but from the product page it seems your monitor also has some "flicker free" features, you might want to try turning that on or off.

edit: also looks like your monitor might be 75hz so godot capping at 60 might cause further flicker for you. Most players playing on 60hz monitors probably would'nt be experiencing this then.

If you, and I'm assuming you are using windows(looks like version 10 from the video) here, right click on your desktop go to screen resolution, then click on advanced settings(or something along those lines) from there, and on the window that opens up you click on the monitor tab, you should see a drop down for screen refresh rate. Might want to experiment with any options it might list too, it should only list options supported by your monitor.

My monitor refresh at 60hz, and I only have options for a lower refresh rates (50 and 59), which changed nothing. I did not find any useful options in the monitor's settings either.

Just one more thing, thought. While moving in diagonal, the sprite is shivering. I made a video again since it was unclear in the first one : youtu.be/wURtEWJ-42w

Sadly it's not as clear in video, while very clear from my monitor, but still, it's there.

Any idea of what it is ?

Your game is 640x360, you said it your self. The pixels are really large then. Think of it like the model is walking up pixel sized stairs as its moving diagonally on screen.

I figured as much. Is this unavoidable when working in low res with diagonals then ?

Thank you for your answers, anyway.

you could try changing your project resolution to monitor native, and use camera zoom with mipmapping disabled to get the retro look, that might alleviate if not avoid it altogether.

2 months later

I don't think screen brand or type factors in at all, the video recording is of the video output, not of his real screen.

I'm experiencing a similar issue, although I'm guessing it's the camera movement that's causing the issue. Because I only see it on the player, the player looks like it's stuttering, except this only happens when the camera follows the player. Although, the environment around the player is not affected by this. So the player move smoothly when the camera is stationary, and stutters when the camera moves. I'm not sure what is causing this issue. Maybe the OP or someone here has some thoughts? video recording of issue:

Seems to me that as the player moves out side the safe zone the camera tries to follow along, but only slightly so, such that the player is soon outside it again, and thus the camera is jumping along the character causing this effect.

2 months later

To me the fix was to set Camera2D property "Process Mode" to Physics instead of Idle. My case btw was the shattered player sprite while moving with the attached camera to it

5 months later

I'm having the exact same issue. I've tried on two computers ( OS X and windows) and three monitors. Has anyone been able to fix this?

2 months later

Im also having this issue, every time my chatacter moves, it shows a weird blur.. anyone found out why?

@nina This is due to monitor ghosting. This is a limitation from your hardware that you can't overcome in software (except by adapting your artwork so it's less noticeable).

Making backgrounds more complex helps a long way to make ghosting less of an issue.

12 days later

@Calinou This is absolutely not the case as switching the "Process Mode" to "Physics" instead of "Idle" completely fixes the issue. I am well aware of what monitor ghosting is.

I wouldn't be so sure. The ghosting might only be visible when the application is actively updating the buffer, i.e. when thing are moving on the screen.

4 years later

Hello, I had the same problem and I had tried many things until in the end I realized that this went hand in hand directly with the camera, not with the pre-rendering in the camera. We have an option called Process Callback, default is in IDLE, put it in PHYSICS and This problem should be solved by applying POSITION SMOOTHING. I hope this little contribution works

a year later