2011-12-21 23 views
1

私はコマンドを使用してLWJGL透明性を使用しようとしています:LWJGL透明

// 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(); 

表示しません:

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

と透明性は、次のように描かれた背景はそのことだけ、動作します。 私はLWJGL 2.8.2、Eclipse Indigoを使用しています。

答えて

3

透明なものをレンダリングするときは、すべてを前から後の順序でレンダリングする必要があります。だから、背景をレンダリングしていることを確認してください最初に。これは働い

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

glDisable(GL_BLEND); 
drawNonTransparentContent(); 

+0

Display.sync(60)の直後に、背景を最初にレンダリングしています。 – Mika

3

私はこれが最善の解決策ですが、透明と不透明なコンテンツを取得する方法は、/無効このように、描画する前にGL_BLENDを活性化させることであろうかどうかわからないんだけど私のために。