Programming/openGL2010. 8. 23. 22:34
openGL에서 선이나 점, 면을 그릴때에는
 glBegin();
 glEnd();
사이에 값을 넣어준다.

glBegin()과 glEnd()의 프로토타입은 아래와 같으며,
glBegin()의 경우 데이터를 처리할 방법에 대해서 정해준다.
void glBegin(GLenum mode);
    GL_POINTS,
    GL_LINES,
    GL_LINE_STRIP,
    GL_LINE_LOOP,
    GL_TRIANGLES,
    GL_TRIANGLE_STRIP,
    GL_TRIANGLE_FAN,
    GL_QUADS,
    GL_QUAD_STRIP, and
    GL_POLYGON.

void glEnd(void);

Only a subset of GL commands can be used between glBegin and glEnd.
            The commands are
            glVertex, glColor, glSecondaryColor, glIndex, glNormal, glFogCoord, glTexCoord, glMultiTexCoord,
            glVertexAttrib, glEvalCoord, glEvalPoint, glArrayElement, glMaterial, and glEdgeFlag.
            Also, it is acceptable to use glCallList or glCallLists to execute
            display lists that include only the preceding commands.
            If any other GL command is executed between glBegin and glEnd,
            the error flag is set and the command is ignored.

[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glBegin.xml]
[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glEnd.xml] glBegin으로 링크 변경됨

아래의 소스처럼 glBegin()과 glEnd() 사이에 값을 넣어주면,
그림처럼 openGL에서 glBegin()의 값을 이용하여 점/선/면을 처리하게 된다.
여기서는 GL_POLYGON 이므로 5개의 점으로 이루어진 하나의 면이 나타나게 된다.
glBegin(GL_POLYGON);
   glVertex2f(0.0, 0.0);
   glVertex2f(0.0, 3.0);
   glVertex2f(3.0, 3.0);
   glVertex2f(4.0, 1.5);
   glVertex2f(3.0, 0.0);
glEnd();


[링크 : http://fly.cc.fer.hr/~unreal/theredbook/chapter02.html]

'Programming > openGL' 카테고리의 다른 글

openGL tutorial  (0) 2011.03.12
openGL, GLU, GLUT 관계  (4) 2011.03.07
openGL - GLUT  (0) 2010.08.26
openGL 문서들  (0) 2010.08.22
openGL  (4) 2010.08.18
Posted by 구차니