Godot version:
3.1 Beta 2
OS/device including version:
Windows 10 x64
1080 Ti, 411.63
Issue description:
First, I'm not sure if it's the same as #17823, as it is considered fixed, so hear my experience and decide if this should be closed.
Also, seems similar to #10878 but it's also closed.
I'm trying to use Camera2D with smoothing enabled.
No fps limit, vsync on, physics fps is 60 and my screen refresh rate is 165.
When my character is running (and enemies following it), in a constant speed, in one direction, it gets blurry. I'm guessing this is related to the fact that the physics fps and the refresh rate aren't in sync and so the player is changing position slower than the camera, and every time it does update it looks like it teleports a bit back and forth?
Anyway, this doesn't happen in either of these situations:
1) fps limit set to 60
2) using a 60 hz screen
3) changing physics fps to 165
Let me know if you need more info. I can also try to record it?
Edit: https://youtu.be/t8oL-ps1uw0
Edit 2: Clarification - Video is recorded in 60 fps and the physics fps is 30, so you can see the problem with 60 hz display. Notice how it disappears if you watch the below 720p version which is 30 fps.
Steps to reproduce:
Camera2D with smoothing (I used speed 3 but it doesn't really matter).
physics fps < refresh rate and no fps limit (vsync on though).
start walking in any direction (the camera has to start 'chasing' you and you need to move constantly so it continues to do so).
Minimal reproduction project:
This is basically the platformer demo, I just changed camera speed and added smoothing, also set full screen for a closer look at the blurriness.
camera_blur.zip
Likely a duplicate of #25162
In this case, I think that the correct combination of scale and motion makes subpixel issues more visible, reimporting the assets with filters may reduce the weird look.
In this case, I think that the correct combination of scale and motion makes subpixel issues more visible, reimporting the assets with filters may reduce the weird look.
In my case I'm using pixel art so I don't want filtering.
Still, I don't think it's related to subpixels (that's more fitting of #2667), as you don't notice anything if you play it with the same refresh rate as the physics. That means it's just moving back and forth in the 'in-between' frames. (You can see it yourself if you watch the youtube video in below 720p, which isn't 60 fps)
Likely a duplicate of #25162
There's lots of stuff going on there but my problem isn't really 'performance' related, it's just visual.
Hey, sorry I'm late - there's actually a pretty easy fix (I recently had the exact same problem, and it took me a while to figure out!).
The simplest solution is to set the Process Mode of the Camera2D to Physics. You don't have to change anything in the script - it's a property that can be found in the Inspector for the Camera2D.
Hey, sorry I'm late - there's actually a pretty easy fix (I recently had the exact same problem, and it took me a while to figure out!).
The simplest solution is to set the Process Mode of the Camera2D to Physics. You don't have to change anything in the script - it's a property that can be found in the Inspector for the Camera2D.
Wow! I was like "this is such a simple fix I'm sure I've already tried it", but seems like I didn't - because it worked! :)
Thanks, really appreciate you taking your time to reply after finding a solution yourself!
Camera process mode was added on 3.1, maybe other similar issues need to be revised too.
Most helpful comment
Hey, sorry I'm late - there's actually a pretty easy fix (I recently had the exact same problem, and it took me a while to figure out!).
The simplest solution is to set the Process Mode of the Camera2D to Physics. You don't have to change anything in the script - it's a property that can be found in the Inspector for the Camera2D.