Windows cpp 目标在更高的分辨率下会变慢



使用以下设置构建窗口 (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 中受益。

其他似乎有帮助的事情是:

  1. 按照 O 的建议关闭antialiasing@Jon
  2. 打开hardware

作为参考,我目前的设置是

<window if="cpp" width="960" height="540" fps="60" background="#000000" hardware="true" vsync="false" antialiasing="0" />

最新更新