Monitor refresh rate and gfx entity smooth movement - Stack Overflow

admin2025-05-01  1

I'd be grateful if someone could sense check what is being said in the following two hypothetical scenarios (am I correct in what's said?)...

Scenario 1:

  1. We have a 1440p monitor set to a refresh rate of 144Hz, this means 144 monitor refreshes per second.
  2. We have a game sprite in a 2D game moving right, across the screen at 1 pixel a time.
  3. In the program game loop, this sprite's movement is synced to the monitor refresh rate(/VBlank is enabled), meaning each update of its x-coordinate also occurs 144 times every second, in sync with the monitor.

In this scenario, the sprite moves at 'perfect' smoothness (not jumping pixels) across the screen at 144 pixels every second, thus taking 2560/144 i.e. 17 seconds to go from screen left to right.

  1. If we wanted the sprite to move faster then we would have to increment each x position by more than 1 pixel on each update.
  2. The more we increment the sprite's x coordinate, the more the movement of that sprite will look 'blurry' / not smooth.

Scenario 2: We then swap to a 500Hz monitor...

  1. In this new monitor scenario, that same sprite moving 1 pixel across the screen, will now take 2560/500 i.e. 5 seconds (compared to 17 above) to go from screen left to right, and it will do this in 'perfect' smoothness, no pixels being skipped. If we wanted faster movement then we'd increment, as before, by >1 pixel.

To sum up the above, we can generalise things as follows...

  1. The 'blurriness' we see in entity / any gfx data / any 'camera panning' movement in games, TV programs/cinema film is primarily because image data is being moved across a screen in increments of '>1 pixel'. This is especially prominent in cinema where e.g. 30 frames per second looks blurry on even moderate moving/panning content...

  2. In the 'ideal' scenario, to maximise movement smoothness we need to move data across the screen by 1 screen pixel (or by high frames per second in e.g. cinema movies), and, have a monitor update rate high enough to support the desired speed of the data being moved across the screen, and (for computer/gfx cards), have a program movement update loop that loops fast enough to support the desired speed of the data being moved across the screen.

  3. We have some way to go before technology allows us that 1 pixel movement at gfx data movement speeds used today (gfx cards or digital/analogue film camera).

  4. However, 500Hz monitors are beneficial for movement 'smoothness' in gaming where the game loop is optimised to use that higher refresh rate i.e. moving data by fewer pixels on each update while retaining the same movement speed because of the higher refresh rate. Not every game will be optimised for high refresh rate monitors.

转载请注明原文地址:http://anycun.com/QandA/1746094279a91583.html