Frage

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 erscheinen (auch wenn ich das Alpha auf 0 setze). Gibt es etwas, das ich vermisst habe, um Alpha -Transparenz zu ermöglichen?

War es hilfreich?

Lösung

Nur eine Vermutung, aber könnte es sein, dass Sie keine Hintergrundfarbe haben? Wenn Sie also den zweiten Scheitelpunkt mit Alpha 0.1 rendern, gibt es keinen Hintergrund, um die richtige Farbe zu berechnen? Nur eine Vermutung, seit Jahren habe ich OpenGL verwendet.

Andere Tipps

Haben Sie Alpha -Mischung auf Gründung? Und haben Sie Ihre Mischparameter eingerichtet? Sie können nicht einfach das Alpha einstellen, das Sie für die Einrichtung verschiedener anderer Parameter in OpenGL einrichten müssen.

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable( GL_BLEND );
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top