c++ - color - render to texture opengl
¿Cómo usar la transparencia alfa en OpenGL? (2)
¿Has visto glmenabled alpha blending? ¿Y has configurado tus parámetros de mezcla? No puede simplemente configurar el alfa que necesita para configurar varios otros parámetros en OpenGL.
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable( GL_BLEND );
Aquí está mi código:
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();
}
El problema es que estos dos puntos parecen idénticos (incluso cuando configuro el alfa en 0). ¿Hay algo que me perdí para habilitar la transparencia alfa?
Solo una suposición, pero ¿podría ser que no tienes un color de fondo? Entonces, cuando renderiza el segundo vértice que tiene alfa 0.1, ¿no hay fondo para calcular el color correcto? Solo una conjetura, han pasado años desde que usé OpenGL.