Windows cpp 目标在更高的分辨率下会变慢
Windows cpp target slows down in higher resolutions
使用以下设置构建窗口 (cpp) 目标时,我的 haxeflixel 游戏遇到了一些意外的性能问题
<window if="cpp" width="480" height="270" fps="60" background="#000000"
hardware="false" vsync="true" />
我注意到,当我将窗口大小调整为更大的分辨率或全屏显示到 1920x1080p 时,游戏会变慢且滞后。但是,根据flixel调试控制台,所有分辨率的帧速率都是相同的。
更有趣的是,我的闪存导出运行更加流畅,而我预计 cpp 目标运行得更快。
这是一款 2D 平台游戏,大约有 6 个瓦片地图(最大的瓦片地图是 1600x1440)和 32x32 或 16x16 精灵。我没想到任何现代系统都会出现性能问题。所以我担心我做错了什么,比如错过了一个明显的设置。
这正常吗?我应该检查哪些关键的渲染性能因素?如果您认为这会有所帮助,请随时向我询问任何细节。
使用 Haxeflixel 3.3.12
我认为这可能是所有C++目标中的常见问题。我也在游戏的 Linux 原生目标上体验过这种情况。我的解决方案是通过以下方式禁用抗锯齿
<window antialiasing="0" />
当然,这最适合像素艺术,而不是3D或HD的东西。然后仍然存在更高的分辨率(视网膜显示器等)性能下降的潜在问题。但这可能足以作为权宜之计。
我一直
在用不同的配置测试我的应用程序设置,当我终于发现关闭vsync
选项会产生最大的影响时。有一些垂直抖动,但游戏最终运行得很快,窗口目标比闪存快。
事实证明,我目前的笔记本电脑有一个英特尔高清GPU,并且vsync功能似乎被破坏了。我记得我以前的 PC 配备了低端 AMD GPU 没有这个问题。
我将考虑添加一个游戏内选项来切换 vsync,以便非英特尔用户可以从 vsync 中受益。
其他似乎有帮助的事情是:
- 按照 O 的建议关闭
antialiasing
@Jon - 打开
hardware
作为参考,我目前的设置是
<window if="cpp" width="960" height="540" fps="60" background="#000000" hardware="true" vsync="false" antialiasing="0" />
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- Linux的Cpp上的计时器
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 命名空间中具有.h和.cpp文件的类
- 内置函数可查看CPP中的成员变量
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- Cpp-Tuple使用带有变量的get
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何通过cpp程序运行shell脚本
- 使用2个键的cpp-stl::优先级队列排序不正确
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 如何在cpp文件之间切换窗口?在Qt中
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我需要知道编译器如何在cpp中使用析构函数
- 如何在cpp.中使用协议缓冲区存储大缓冲区/数组(char/int)
- 无法在UE4中包含BP类到CPP类
- Windows cpp 目标在更高的分辨率下会变慢
- 重载分辨率,cpp