이것을 코드로 표현하자면 아래와 같다. 우선 블렌딩을 활성화하고 사각형을 그리는데 블렌딩 옵션을 입력으로 들어오는 화소만 그려지라는 의미의 GL_ONE, GL_ZERO 로 주고 삼각형을 그린다. 그리고나서 블렌딩 옵션을 바꿔서 사각형을 그리면 된다.
glEnable(GL_BLEND); // 블렌딩활성화
glBlendFunc(GL_ONE, GL_ZERO); // 소스(Incoming) 만그리기
glBegin(GL_TRIANGLES); // Drawing Using Triangles
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
glVertex4f( 0.0f, 1.2f, 0.0f, 1.0f);
glVertex4f(-1.2f,-1.0f, 0.0f, 1.0f);
glVertex4f( 1.2f,-1.0f, 0.0f, 1.0f);
glEnd();
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_QUADS); // Draw A Quad
glColor4f(0.0f, 0.0f, 1.0f, 0.5f);
glVertex4f(-1.0f, 1.0f, 0.0f, 1.0f);
glVertex4f( 1.0f, 1.0f, 0.0f, 1.0f);
glVertex4f( 1.0f,-1.0f, 0.0f, 1.0f);
glVertex4f(-1.0f,-1.0f, 0.0f, 1.0f);
glEnd();
glEnable(GL_BLEND); // 블렌딩활성화
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
glBegin(GL_TRIANGLES); // Drawing Using Triangles
glColor4f(1.0f, 1.0f, 1.0f, 0.33333f);
glVertex4f( 0.0f, 1.2f, 0.0f, 1.0f);
glVertex4f(-1.2f,-1.0f, 0.0f, 1.0f);
glVertex4f( 1.2f,-1.0f, 0.0f, 1.0f);
glEnd();
glBegin(GL_QUADS); // Draw A Quad
glColor4f(1.0f, 1.0f, 1.0f, 0.33333f);
glVertex4f(-1.0f, 1.0f, 0.0f, 1.0f);
glVertex4f( 1.0f, 1.0f, 0.0f, 1.0f);
glVertex4f( 1.0f,-1.0f, 0.0f, 1.0f);
glVertex4f(-1.0f,-1.0f, 0.0f, 1.0f);
glEnd();
glColor4f(1.0f, 1.0f, 1.0f, 0.33333f);
glutSolidSphere(1.0f, 36, 36);
'OpenGL' 카테고리의 다른 글
FBO (FrameBuffer Object) 사용하기 (2) | 2010.03.11 |
---|---|
Convex Hull, Concave Hull (0) | 2010.02.24 |
OpenGL Viewing - Viewing, Modeling, Projection, Viewport transformation (2) | 2010.02.23 |
glPolygonMode()와 glCullFace() (0) | 2010.02.19 |
OpenGL Rendering Pipeline (0) | 2010.02.18 |