1
在游戏开始时我正在加载模型和东西,这需要一些时间,因此加载时会出现一个空白的黑屏。LWJGL中的OpenGL多线程(JAVA)
所以我想要做的是把所有的模型加载和显示列表创建到一个线程,并使(呈现)另一个加载。现在,我了解到OpenGL在多线程中不能很好地工作,而OpenGL命令只能从一个线程中调用,我的原始线程解决方案不起作用。两个线程都应该能够调用OpenGL命令:渲染和显示列表创建。
有没有人知道(熟悉)一个简单的解决方案呢? 与例子的一个很好的链接将做。
“这没问题” - 当我从一个新线程调用GL11.glGenLists时,我得到null异常。这是蠕虫还是什么? – Vladp 2012-04-18 22:03:57
我从来没有在java中做过OpenGL,我不明白为什么人们这样做。我非常喜欢java的工作,但是对于OpenGL C++来说,这似乎是很自然的选择 - 还有更多的资源。但请记住,您无法看到其他线程数据。 – Mads 2012-04-18 22:20:53
我只能证明使用JOGL,但我没有太多关于引用的问题(这是一个非常薄弱的绑定)。 OpenGL的好处当然是速度和可移植性,Java的好处是程序的业务逻辑通常更容易编写。几乎没有什么折衷,但正如JOGL实现者所提到的,在C/C++实现方面观察到速度降低了10%。 – Quaternion 2012-04-18 23:19:31