gpt4 book ai didi

Java 2D 一致的图形性能问题

转载 作者:太空宇宙 更新时间:2023-11-04 14:16:30 25 4
gpt4 key购买 nike

我正在开发一款 Java 2D 视频游戏,并在 Mac OS X 10.10.1 上开发它。我尝试使用 Java 2D api 来完成这一切,并避免使用第 3 方库。我似乎遇到了显示更新问题,有时更新速度非常快,有时又似乎在犹豫更新。

通过阅读其他人关于 Java 2D 性能的评论,我将所有图形图像转为使用 VolatileImage,对于任何非动态图形,我通过在 PaintComponent 中调用来执行屏幕外操作并复制到屏幕调用例程(由定时器驱动)。这些图像也被创建为 VolatileImage。

在进行这些性能增强(即 VolatileImages 和离屏绘图缓冲区)后,我注意到这种屏幕抖动的行为。现在,我进行这些更改的原因是为了利用硬件加速。我如何检查是否发生这种情况?并且,关于如何纠正我现在遇到的这个不稳定的屏幕更新问题有什么想法吗?我见过人们谈论动态计时器的使用,根据当前更新所花费的实际时间,动态计时器将重新计算等待下一次更新的时间,以尝试获得平滑更新的图形运动。这是这样做的方法吗?或者我错过了什么?

谢谢。

最佳答案

你提到了paintComponent,所以我假设你正在使用Swing。 Swing 默认情况下具有双缓冲,您不应该添加另一层双缓冲。如果您想了解 Swing 应用程序在没有 Swing 双缓冲的情况下的行为方式,请将 -Dawt.nativeDoubleBuffering=true 标志添加到 JVM 参数中。另请注意,双缓冲不会提高每秒帧数性能,只会提高感知性能,请参阅this

另请参阅:Java Hardware Acceleration

还有这个:Java : VolatileImage slower than BufferedImage

关于Java 2D 一致的图形性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27659368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com