Wie die alpha-Transparenz verwenden in OpenGL?
Hier ist mein code:
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();
}
Das problem ist, dass diese beiden Punkte identisch zu sein scheinen (auch wenn ich die alpha auf 0). Gibt es etwas, was ich verpasst zu aktivieren alpha-Transparenz?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur eine Vermutung, aber könnte es sein, dass Sie nicht über die Hintergrundfarbe ? So, wenn Ihr rendering der zweiten vertex hat alpha 0.1, es ist kein hintergrund zu berechnen die richtige Farbe ? Nur eine Vermutung, schon seit Jahren, die ich verwendet opengl.
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable( GL_BLEND ); glClearColor(0.0,0.0,0.0,0.0);
aber nur nach glutCreateWindow()haben Sie glEnable würd alpha-blending? Und haben Sie bei der Einrichtung Ihres blend-Parameter? Sie können nicht nur setzen Sie den alpha -, müssen Sie setup verschiedene andere Parameter in OpenGL.