在openGL中绘制具有透明度的实心球体

Eta*_*tan 3 c++ opengl graphics transparency glut

我想glutSolidSphere用一些透明度来绘制,但它似乎不起作用.

glColor4f(1, 0, 0, 0); // should be completely invisible
glPushMatrix();
glTranslatef(position.x, position.y, position.z);
glutSolidSphere(3, 5, 5);
glPopMatrix();
Run Code Online (Sandbox Code Playgroud)

在我的main函数中,我使用以下显示模式初始化:

glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA | GLUT_ALPHA);
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

Jul*_*rgé 12

您需要明确设置Alpha混合.另一个例子.

glEnable(GL_BLEND);

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);