c++ - 为什么相同的代码在笔记本电脑显示器和外接显示器上的工作方式不同
问题描述
我正在使用learnopengl的 SSAO 代码,但我的笔记本电脑显示器 ( LM ) 和外接显示器 ( EM ) 之间的结果不同。
EM 结果(良好):
LM 结果(坏):
当我将结果窗口从 LM 拖到 EM 时,窗口不会改变,反之亦然。
另外,我用
glfwGetFramebufferSize(window, &screenWidth, &screenHeight);
glViewport(0, 0, screenWidth, screenHeight);
设置视口大小[原因],我得到了
- EM : screenWidth = 800, screenHeight = 600 (等于窗口大小)
- LM:屏幕宽度 = 1600,屏幕高度 = 1200
虽然我将笔记本电脑显示器视口大小设置为 (800, 600),但结果很好:
视口大小 (800*600) LM 结果
当我不使用 SSAO 或做一些简单的任务(天空盒、加载模型等)时,结果是一样的。
我的笔记本电脑显示器是:
Retina 13.3-inch(2560 x 1600)
Intel Iris 1536 MB Graphics Card
我的外接显示器是:
AOC 2489W1 23.5-inch(1920 x 1080)
Intel Iris 1536 MB Graphics Card
60Hz
关于如何实现这一目标的任何想法?
解决方案
推荐阅读
- php - 用自定义短信替换 WooCommerce 购物车运输部分
- pine-script - TradingView Forward 测试策略错误 - 每根柱执行多个订单而不是一个
- directory - vsftpd 匿名默认目录路径是什么?
- c# - 这是使用 HttpClient 的坏模式吗?
- graphql - 阿波罗、乐观创造和重定向
- symfony - 如何修复无法自动装配“..)”的参数 $em:它引用了接口“Doctrine\Common\Persistence\ObjectManager”
- kivy - Expansion panel is not expanding in kivymd
- python - Creating an Assistant. How can I loop it to go back to the top to listen for its name? Just asking about how I could loop the program
- c++ - 我在 [class.copy.elision] 中找不到确认初始化 `T x = T();` 符合强制复制省略的条件
- php - Twilio Paging Information