8

glColor4f() を使用しています。驚いたことに、アルファ、つまり 4 番目の引数を変更しても透明度は変わりません。コード セグメントは次のとおりです。

const GLfloat squareVertices[] = { 
0.5, 0.5, 0.0, 
-0.5, 0.5, 0.0, 
0.5, -0.5, 0.0,
-0.5, -0.5, 0.0}; 

glEnableClientState (GL_VERTEX_ARRAY);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor4f (1.0, 0.0, 0.0, 0.5);
glLoadIdentity ();       
glTranslatef(0, 0, -5);
glVertexPointer(3, GL_FLOAT, 0, squareVertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

私が間違っている可能性がある場所へのポインタはありますか?

4

1 に答える 1

16

透明度を使用する場合は、ブレンドを有効にする必要があります。

glEnable(GL_BLEND);

ブレンディング関数を設定するには、glBlendFuncも参照してください。

于 2012-04-16T21:45:15.787 に答える