Why does the same code work differently on a laptop monitor and an external monitor

110 Views Asked by At

I am using the SSAO code from learnopengl, but there are different results between my laptop monitor(LM) and external monitor(EM).

EM result(Good):

External monitor result

LM result(Bad):

Laptop monitor result

And when I drag the result window from LM to EM, the window doesn't change, vice versa.

Also, I use

glfwGetFramebufferSize(window, &screenWidth, &screenHeight);
glViewport(0, 0, screenWidth, screenHeight);

to set viewport size[reason], and I got

  • EM : screenWidth = 800, screenHeight = 600 (equal to window size)
  • LM : screenWidth = 1600, screenHeight = 1200

While I set laptop monitor viewport size to (800, 600), the result is good:
viewport size (800*600) LM result

When I don't use SSAO or do some simple tasks(skybox, loading model, etc), the result is same.

My laptop monitor is:

Retina 13.3-inch(2560 x 1600)
Intel Iris 1536 MB Graphics Card

My external monitor is:

AOC 2489W1 23.5-inch(1920 x 1080)
Intel Iris 1536 MB Graphics Card
60Hz

Any ideas on how to achieve this?

0

There are 0 best solutions below