Pixel sprite blurred while moving

PaulPaul Posts: 4Member

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.

Best Answer

  • MegalomaniakMegalomaniak Posts: 2,763
    Accepted Answer

    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.


  • MegalomaniakMegalomaniak Posts: 2,763Admin
    edited August 2019

    Uncapped FPS?

    I bet it's just ghosting.


  • PaulPaul Posts: 4Member
    edited August 2019

    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...

  • MegalomaniakMegalomaniak Posts: 2,763Admin
    edited August 2019

    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.

  • PaulPaul Posts: 4Member

    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 ?

  • MegalomaniakMegalomaniak Posts: 2,763Admin
    Accepted Answer

    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.

  • PaulPaul Posts: 4Member

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

    Thank you for your answers, anyway.

  • MegalomaniakMegalomaniak Posts: 2,763Admin

    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.

  • vbsvbs Posts: 2Member

    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.

  • vbsvbs Posts: 2Member

    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:

  • MegalomaniakMegalomaniak Posts: 2,763Admin

    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.

  • paxerpaxer Posts: 1Member

    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

  • montoyaaguirremontoyaaguirre Posts: 1Member

    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?

  • ninanina Posts: 1Member

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

  • CalinouCalinou Posts: 451Admin Godot Developer
    edited July 28

    @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.

  • alrightsurealrightsure Posts: 1Unconfirmed Member

    @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.

  • MegalomaniakMegalomaniak Posts: 2,763Admin

    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.

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file