Dưới đây là mã của tôi:Làm cách nào để sử dụng tính trong suốt của alpha trong OpenGL?
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();
}
Vấn đề là hai điểm này xuất hiện giống hệt nhau (ngay cả khi tôi đặt alpha 0). Có điều gì tôi đã bỏ lỡ để bật tính minh bạch alpha không?
Vâng, đây là nó. Tôi nên thêm: 'glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable (GL_BLEND); glClearColor (0,0,0,0,0,0,0,0); ' nhưng chỉ sau glutCreateWindow() –