문제

내 코드는 다음과 같습니다.

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();
}

문제는이 두 지점이 동일하게 보인다는 것입니다 (알파를 0으로 설정하더라도). 알파 투명성을 가능하게하기 위해 놓친 것이 있습니까?

도움이 되었습니까?

해결책

단지 추측이지만 배경색이 없을 수 있습니까? 알파 0.1이있는 두 번째 정점을 렌더링 할 때 적절한 색상을 계산할 배경이 없습니까? 내가 OpenGL을 사용한 지 몇 년이 지났습니다.

다른 팁

알파 블렌딩 할 수 있습니까? 블렌드 매개 변수를 설정 했습니까? OpenGL에서 다양한 다른 매개 변수를 설정하는 데 필요한 알파를 설정할 수는 없습니다.

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable( GL_BLEND );
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top