반응형
그래픽의 가장 원시적요소가 Vertex(정점) 이고 이를 바탕으로 선과 면이 구성된다.
점을 화면상에 표시해주기 위해서는 다음과 같은 코드가 필요하다
void glBegin(GLenum mode);
void glEnd();
위 두 코드 사이에 정점을 그려주면되는데 이때 Begin에 입력하는 mode에 따라 정점이 어떻게 그려지냐가 결정된다.
모드 설명
GL_POINTS 독립적인 점
GL_LINE_STRIP 연결된 선분
GL_LINE_LOOP 시작점과 끝점을 이은 선분
GL_LINES 두개의 정점들을 이은 선분
GL_TRIANGLES 세개씩 연결한 삼각형
GL_TRIANGLE_STRIP 연결된 삼각형
GL_TRIANGLE_FAN 중심을 공유하는 삼각형
GL_QUADS 정점 4개씩을 연결하여 사각형을 그린다
GL_QUAD_STRIP 연결된 사각형
GL_POLYGON 연결된 블록 다각형
다음 소스코드를 통해 mode별 결과를 확인하자.
#include <gl\glut.h>
void display()
{
glPointSize(5.0f); // 정점의 size 조절
glBegin(GL_POINTS); // mode 선택
glVertex2f(-0.5f, 0.5f);
glVertex2f(0.5f, 0.5f);
glVertex2f(-0.5f, -0.5f);
glVertex2f(0.5f, -0.5f);
glEnd();
glFlush();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowSize(200, 200);
glutCreateWindow("opengl project");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
똑같이 4개의 정점을 그려도 mode에 따라 이렇게 결과가 달라진다.
glPointSize를 설정하지 않고 정점을 그릴경우 눈에 잘 안보일것이다. 꼭 설정하길 바란다.
반응형
'개발 > OpenGL' 카테고리의 다른 글
프레임 버퍼 이미지 파일로 저장하기 (0) | 2019.10.16 |
---|---|
GLFW, GLEW, GLM을 사용하는 프로젝트 세팅하기 (0) | 2018.04.17 |
OpenGL 애니메이션 처리하기(더블 버퍼링) (0) | 2016.12.13 |
OpenGL 1.0 시작하기 (0) | 2015.12.30 |