OpenGLでアルファ透明度を使用する方法は?
-
06-07-2019 - |
質問
ここに私のコードがあります:
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を使用してから何年も経ちました。
他のヒント
アルファブレンディングを有効にしましたか?そして、ブレンドパラメーターを設定しましたか? OpenGLで他のさまざまなパラメーターを設定するために必要なアルファを設定することはできません。
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable( GL_BLEND );
所属していません StackOverflow