2015-10-04 127 views
-1

我想告訴OpenGL一次它應該重置所有渲染到屏幕上的內容並開始,也就是說從開始。我需要一種方式來做到這一點,而不會破壞顯示器。Java(lwjgl)OpenGL完全清除屏幕

我已經嘗試將整個openGL渲染引擎包裝到循環中,但重新啓動循環似乎不能解決問題,儘管從已經渲染的對象開始不會消失。

有沒有辦法告訴openGL,它應該重置整個渲染過程,並從零開始?

這是我的主類:

static RenderClass engine = new RenderClass(); 

    public static void main(String[] args) 
    {   
     engine.setDisplayMode(1224, 720, "RenderExample"); 
     engine.RunOpenGL(); 
    } 
} 

,這是我的引擎類,我調用openGL的方法:

public void RunOpenGL() 
{ 
    camera(0,0,0, 0); 

    while(master == true) 
    {  
     if(Display.isCloseRequested()) 
      { master = false; } 

     if(render == true) 
     { OpenGLRenderMethods(); } // This will initate all OpenGL Rendering Mechanics 

     Display.update(); 
    } 
    Display.destroy(); 
    Keyboard.destroy(); 
    Mouse.destroy(); 
} 

我想,當我將設置使得它可能工作=假;然後將其設置爲render = true;再次,所以引擎會重置所有的OpenGL渲染機制。相反,它似乎只是重複一遍,這意味着現在所呈現的一切仍然可見。

希望你能幫助我, 真誠的感謝!

+1

你是在找[glClear](https://www.opengl.org/sdk/docs/man/html/glClear.xhtml)? – BDL

+0

不,這沒什麼事..我已經找到了解決辦法,但現在我面臨着其他問題.. – DisasterCoder

回答

0

因此,如果任何人面臨同樣的問題,這裏就是我找到變通的辦法:

如果你的模型可以轉化,你想擺脫他們只是其規模降低到0,在這之前你將不得不將每個模型的屬性保存在文本文件中並從那裏生成它們。

現在,當您將每個元素設置爲0時,您只需告訴引擎使用文本文件中指定的屬性來渲染對象。

如果您要從文本文件中刪除對象,則其縮放比例不會更新並保持爲零,這會產生刪除對象的印象。

這就是我的解決方案,我希望它能幫助別人! 親切的問候!