2011-12-21 118 views
1

我試圖使用使用命令LWJGL透明度:LWJGL透明度

// Enable transparency 
glEnable(GL_BLEND); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 

和透明度的工作,它只是繪製這樣一個背景:

// Draw Background 
    glColor4f(1f, 1f, 1f, 1f); 
    glPushMatrix(); 
    glBegin(GL_QUADS); 
    glVertex2f(0, 0); 
    glVertex2f(width, 0); 
    glVertex2f(width, height); 
    glVertex2f(0, height); 
    glEnd(); 
    glPopMatrix(); 

看不出來。 我使用LWJGL 2.8.2,Eclipse Indigo,以及任何幫助,將不勝感激!

回答

3

渲染透明事物時,必須按照先後順序渲染所有內容。所以請確保你先渲染背景第一個

+0

我正在渲染背景,緊接着Display.sync(60); – Mika 2011-12-21 19:17:40

3

我不知道這是否是最好的解決辦法,而是一種方式來獲得透明和非透明內容將停用/繪製前激活GL_BLEND,就像這樣:

glEnable(GL_BLEND); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
drawTransparentContent(); 

glDisable(GL_BLEND); 
drawNonTransparentContent(); 

這個工作對我來說。