Java2D可以和LWJGL和JOGL一样快吗?

时间:2011-03-20 21:37:26

标签: java graphics jogl java-2d lwjgl

我听说Java2D在幕后使用OpenGL进行渲染,我想知道是否值得使用JOGL以及我的程序的所有原生库,这只是一个2D侧卷轴。我听说你必须使用某些技术和你需要避免的场景,以确保使用硬件加速,但我不知道它们是什么(好吧,我知道一些,但我还没有找到它们的完整列表。)。

4 个答案:

答案 0 :(得分:5)

作为共同开发a 2D casual game in Java using LWJGL的人,如果您打算制作休闲游戏,我建议不要使用LWJGL或JOGL。

优点:

  • 简化引擎编写:OpenGL具有较高的填充率,这意味着您可以每帧重绘一次。
  • 酷炫3D效果的可能性。

缺点:

  • 所有用户都需要有3D卡。
  • 所有用户都需要安装OpenGL驱动程序。 Windows 7没有安装任何OpenGL驱动程序(在Google上查找“pixel format not accelerated”以查看产生的乐趣)。
  • 3D卡吃电池,尤其是旧笔记本电脑。人们经常在笔记本电脑上玩休闲游戏,所以这可能是一个问题。
  • 小程序需要额外的权限才能使用3D卡。除非您愿意购买500美元的证书,否则这会导致用户必须点击一个可怕的权限对话框才能玩游戏。

我的建议是使用像PulpCore这样的Java2D渲染和动画框架来开发游戏。我希望我们有。

答案 1 :(得分:4)

您可以使用库来将Java2D绘制到OpenGL中。 GLG2D(我的图书馆)这样做。它依赖于JOGL并将所有java.awt.Graphics2D调用转换为OpenGL调用。

在Java2D中,线条绘制,尤其是曲线,可能会非常慢。

答案 2 :(得分:3)

简短的回答,没有。 Java2D上有太多膨胀层,因为它可以像LWJGL或JOGL应用程序一样快。

答案 3 :(得分:0)

您可以在Java2D中启用硬件加速,但即使在这种情况下,它仍然比任何用于OpenGL的Java绑定(JOGL,LWJGL)更慢(有时还有错误)。如果你想要两全其美,请看看上面提到的Brandon建议的GLG2D。请记住,Java2D是一个高级API,而JOGL是一个低级绑定。您可以使用依赖于这些低级OpenGL绑定的高级API,例如JGame,Slick和LibGDX。