我一直在研究游戏引擎。它可以在窗口模式,全屏模式或小程序模式下创建游戏。 FPS在小程序模式和窗口模式下很好(在地图中给我90-120 fps,最多3000个对象),但在全屏模式下,它降至25-50 fps。这是窗口类。
https://code.google.com/p/game-engine-for-java/source/browse/src/com/gej/core/GWindow.java
无法找到问题所在。而且在Windows上运行更好,但在Ubuntu上它有这个问题。列出显示模式给了我钻头深度-1这是我机器上的完整列表。
1600 900 -1
1440 900 -1
1440 900 -1
1280 800 -1
1280 800 -1
1152 864 -1
1024 768 -1
1024 768 -1
1024 768 -1
832 624 -1
800 600 -1
800 600 -1
800 600 -1
800 600 -1
640 480 -1
640 480 -1
640 480 -1
640 480 -1
720 400 -1
我发现位深度-1表示BIT_DEPTH_MULTI,这是DisplayMode类中的常量。因此,设置模式会将fps增加到60-70fps,但仍然不如窗口模式那么多。
答案 0 :(得分:3)
Java2D在Ubuntu上是否使用硬件加速?看看一些Java 2d flags,特别是那些打开OpenGL的人。
在Windows上,默认使用Direct3D加速。在Linux上,您默认情况下不获取OpenGL,因此在启动JVM时,请尝试使用命令行选项-Dsun.java2d.opengl=true
启用它。