如何从Java2D中获得最佳图形性能

时间:2013-11-29 19:18:31

标签: java swing graphics 2d java-2d

这个问题不适用于LWJGL,JavaFX等库。这里的目标是确定如何从Java2D中获得最佳性能。更具体地说,如何从Java2D中获得最佳性能,以创建视觉上吸引人且高效的2D游戏。我遇到了很多实践:直接绘制到JFrame上,覆盖JPanel或JComponent,overriding Canvas以提供一些不错的双缓冲策略,使用库(ehm)等。

过去,我只是简单地覆盖JPanel及其paintComponent方法,最后,它以35 FPS稳定运行!对于简单的自上而下的2D Java游戏而言,这并不是性能的巅峰(或者可能是?)。

那么,从Java2D中获取每一滴性能的最佳策略是什么?

1 个答案:

答案 0 :(得分:3)

如果您想使用Java的Graphics2D类来绘制性能良好的对象,我建议使用VolatileImage。它从Java 1.4开始提供,并使用硬件加速处理(如果可能)来渲染它的东西。它扩展了java.awt.Image,因此如果您之前使用过BufferedImage左右,则没有太多变化。但是使用这个类有一些棘手的事情。例如,在呈现其内容之前,您需要检查它是否仍然有效,但通常不是很难管理这些东西·但是因此您可以获得相当不错的性能提升,而无需更改大量代码。 :)

这个link应该会给你很好的建议。