我将 OpenGL 与 JOGL 结合使用。我的项目有点慢。我是 OpenGL 的新手。优化它的一些最佳方法是什么?有哪些好的分析工具? (我正在使用 Eclipse。)
我最近从对一大堆模型使用一个静态纹理对象切换到每个模型都有自己的纹理对象。这似乎减慢了速度。
其他优化思路:
- 避免在更新调用中使用 trig 来模拟月球轨道
- 更多地使用显示列表
- 按纹理对模型进行排序以减少纹理切换
- 按旋转对模型进行排序以避免旋转矩阵
- 按[特征X]对模型进行排序以避免[操作Y]
上面的 X 和 Y 有哪些常见的问题值?
显示列表似乎有助于提高性能。我可以在显示列表中做什么?是否有任何必须在绘制时完成的事情,或者是否可以全部预先计算?
作为 OpenGL 的新手,我没有很好的直觉来判断这里要做什么。
最佳答案
就代码的 OpenGL 部分优化而言,我建议使用 OpenGL 技术来减少客户端 <-> 服务器数据传输(即 CPU 和 GPU 之间的数据传输)。显示列表绝对有助于提高性能,因为它们可以显着减少从客户端发送到服务器(系统到 GPU)的数据。显示列表和顶点数组是提高即时模式性能的良好开端,但还有更多改进,例如缓冲区对象和着色器。
我建议你看看SongHo's OpenGL pages .他们通过完整的代码示例对上述几个主题进行了出色的解释和实现。
编辑:我忘了说他的示例是用 C++ 编写的,但是 OpenGL 调用应该都是相同的,如果不一样,则高度相似。
关于java - 如何优化我的 JOGL 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3807456/