2011-12-21 134 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(); 

这个工作对我来说。