You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Godot v4.3.beta (2729fc4) - Linux Mint 21.3 (Virginia) - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 (nvidia; 535.183.01) - 13th Gen Intel(R) Core(TM) i5-13600KF (20 Threads)
Issue description
Since pixel snap was added, it has worked by snapping canvas items to whole numbers when rendering, whether that's by ceil, floor, round or another method. A persistent issue arises when you have things in motion at a different speed than the camera. This includes moving platforms, parallax backgrounds, or moving actors on screen. If another canvas item is moving at a different speed in the same or opposite direction from the camera's movement, the difference in whole number positions will jump back and forth between values, making the items appear to jitter on screen.
Below is an example using parallax:
2024-07-06.14-13-03.mp4
This has been a known issue for a long time, and is the expected behavior, but certainly not the desired behavior. A maintainable solution hasn't been proposed yet, but I thought it'd be worth it to make a formal issue, so users know we're aware.
Steps to reproduce
Have a resolution where the individual pixels are visible.
Set the stretch mode to viewport, aspect to keep, and integer scaling mode.
Turn 2D pixel snapping on.
Display objects with different motion than the camera like a parallax node.
Scroll around.
Minimal reproduction project (MRP)
This is set up with engine speed at a 0.1 multiplier and printing the positions of both the parallax node and the camera, and the difference between the two when pixel snap is active.
You can see while you're scrolling that the difference between the two jumps back and forth between two values.
Tested versions
System information
Godot v4.3.beta (2729fc4) - Linux Mint 21.3 (Virginia) - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 (nvidia; 535.183.01) - 13th Gen Intel(R) Core(TM) i5-13600KF (20 Threads)
Issue description
Since pixel snap was added, it has worked by snapping canvas items to whole numbers when rendering, whether that's by ceil, floor, round or another method. A persistent issue arises when you have things in motion at a different speed than the camera. This includes moving platforms, parallax backgrounds, or moving actors on screen. If another canvas item is moving at a different speed in the same or opposite direction from the camera's movement, the difference in whole number positions will jump back and forth between values, making the items appear to jitter on screen.
Below is an example using parallax:
2024-07-06.14-13-03.mp4
This has been a known issue for a long time, and is the expected behavior, but certainly not the desired behavior. A maintainable solution hasn't been proposed yet, but I thought it'd be worth it to make a formal issue, so users know we're aware.
Steps to reproduce
Have a resolution where the individual pixels are visible.
Set the stretch mode to viewport, aspect to keep, and integer scaling mode.
Turn 2D pixel snapping on.
Display objects with different motion than the camera like a parallax node.
Scroll around.
Minimal reproduction project (MRP)
This is set up with engine speed at a 0.1 multiplier and printing the positions of both the parallax node and the camera, and the difference between the two when pixel snap is active.
You can see while you're scrolling that the difference between the two jumps back and forth between two values.
camerajitter.zip
The text was updated successfully, but these errors were encountered: