Windows cpp target slows down in higher resolutions
使用以下设置构建Windows(cpp)目标时,我的haxeflixel游戏遇到一些意外的性能问题
1 2 | <window if="cpp" width="480" height="270" fps="60" background="#000000" hardware="false" vsync="true" /> |
我注意到,当我将窗口大小调整为更大的分辨率,或者将其全屏显示为1920x1080p时,游戏变得更加缓慢和滞后。但是,根据flixel调试控制台,所有分辨率的帧频均相同。
更有趣的是,我的闪存导出运行得更加流畅,而我希望cpp目标运行得更快。
这是一款2D平台游戏,包含约6个tilemap(最大的tilemap为1600x1440)和32x32或16x16的精灵。我没想到在任何现代系统上都会有性能问题。因此,我担心自己做错了什么,例如缺少明显的设置。
这正常吗?我应该检查一些关键的渲染性能因素吗?如果您认为这会有所帮助,请随意询问我任何细节。
使用Haxeflixel 3.3.12
我认为这可能是所有C ++目标中的常见问题。我也通过我的游戏的Linux本机目标体验了这一点。我的解决方案是通过禁用抗锯齿
1 | <window antialiasing="0" /> |
当然,这最适合像素画,而不是3D或HD素材。然后,在更高的分辨率下(视网膜显示器等),仍然存在性能下降的潜在问题。但这可能是权宜之计。
当我最终发现关闭
事实证明,我当前的笔记本电脑具有IntelHD GPU,并且vsync功能似乎已损坏。我记得我以前的PC配备了低端AMD GPU时没有这个问题。
我将考虑添加一个游戏内选项来切换vsync,以便非英特尔用户可以从vsync中受益。
其他似乎有所帮助的事情是:
供参考,我当前的设置是
1 | <window if="cpp" width="960" height="540" fps="60" background="#000000" hardware="true" vsync="false" antialiasing="0" /> |