OpenGL에서 알파 투명성을 사용하는 방법은 무엇입니까?
-
06-07-2019 - |
문제
내 코드는 다음과 같습니다.
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 );
제휴하지 않습니다 StackOverflow