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