性能问题JOGL

时间:2011-12-23 15:45:07

标签: jogl

我正在JOGL与我的项目组合作开发一款3D游戏。我们正在应对性能问题。我们的游戏以每秒20帧或更少的速度运行。

我们测量了主显示功能的执行时间。结果是4毫秒这是好的。但是,当我们测量两次显示调用之间的时间时,结果是60毫秒。

所以问题是。在Opengl的两次显示调用之间会发生什么?

提前致谢

2 个答案:

答案 0 :(得分:6)

如果通过使用GLCanvas将JOGL与AWT结合使用,则在AWT事件调度线程执行输入和2D渲染时阻止渲染。

如果JOGL通过使用GLJPanel与AWT结合使用,则在AWT事件调度线程执行输入和2D渲染时阻止渲染+花费额外时间从GPU图形内存执行数据复制到Java2D CPU内存。

JOGL建议直接使用NEWT GLWindow。 NEWT是JOGL的高性能本机窗口工具包。 NEWT与OpenGL渲染并行执行输入。 实现高性能渲染而不被输入事件阻塞,反之亦然。 http://jogamp.org/jogl/doc/NEWT-Overview.html

答案 1 :(得分:1)

我同意xranby但你没有提供有关你项目的足够信息。

如果在错误的位置调用Thread.sleep(),可能会导致与GPU同步的问题并破坏您的性能。

如果你打开自动交换缓冲模式并且无用地手动交换缓冲区,它也会破坏你的性能。

如果你试图让你的OpenGL保持最新状态而没有必要,那么它也会破坏你的表现。

您启用了v-sync吗?你使用FPSAnimator吗?