これが私のコードです:
void display(void);
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable( GL_BLEND );
glutInitWindowSize(600,600);
glutInitWindowPosition(200,50);
glutCreateWindow("glut test");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(8);
glBegin(GL_POINTS);
glColor4f(.23,.78,.32,1.0);
glVertex2f(0,0);
glColor4f(.23,.78,.32,0.1);
glVertex2f(0.1,0);
glEnd();
glFlush();
}
問題は、これらの2つのポイントが同一に見えることです(アルファを0に設定した場合でも)。アルファ透過を有効にするために見逃したものはありますか?
単なる推測ですが、背景色がない可能性がありますか?したがって、アルファ0.1を持つ2番目の頂点をレンダリングする場合、適切な色を計算するための背景はありませんか?ただの推測ですが、openglを使用してから何年も経っています。
あなたはglEnableのアルファブレンディングをしましたか?また、ブレンドパラメータを設定しましたか? OpenGLで他のさまざまなパラメーターを設定するために必要なアルファを設定することはできません。
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable( GL_BLEND );