2011-07-14 46 views
0

我正在使用LWJGL爲opengl中的遊戲編寫3D編輯器。我只希望編輯器在我需要時渲染。但是,如果您只渲染一次並且一直打電話給Dislplay.update(),則圖像會出現毛刺,如果您偶爾只撥打Dislplay.update()而不是在while循環中,則程序將停止響應,並且窗戶將其關閉。有誰知道這是爲什麼或解決方法?不會調用Display.update()會導致程序崩潰

回答

0

在玩了一下之後,我很自然地想出了自己的想法。每次更新顯示器時,都會交換緩衝區,以便每隔一秒更新一次手動交換緩衝區,以便使用相同的緩衝區或渲染兩次;每個緩衝區一次。
例如,如果你有一個渲染()方法來呈現你的形象,你這樣做:

render(); 
Display.swapBuffers(); 
render(); 

,然後你通常會更新顯示。

+0

這種解決方法只有在緩衝區交換是真正的交換時纔會起作用。如果這是一個破壞性的災難,那麼你的運氣不好。通過將完成的渲染複製到紋理中來避免這種情況,並且在空閒顯示處理程序中,只需將此紋理繪製到填充四邊形的視口即可。順便說一句:你可以接受你自己的答案來標記正在解決的問題;你當然不會被授予聲譽。 – datenwolf

相關問題