작업/opengl

Lesson 1: Basic Shapes

한종서 2012. 6. 22. 02:13

 

main.cpp

OpenGL은 표준 x,y축을 사용하며, 오른쪽을 x방향 + 그리고 위쪽을 y방향으로 함께 사용한다.

3D에서 우리는 다른 차원이(z 차원) 필요하다. z 방향 +는 스크린을 나가는 방향이다.

Axes

 

    glutSwapBuffers(); //Send the 3D scene to the screen

이 라인은 OpenGL이 실제로 윈도우의 장면을 움직이게 만든다. 우리는 이것을 호출할 때마다 우리의 장면을 그리는 것을 완성할 수 있다.

 

투영에는 직교투영과 투시투영(glFrustum(),gluPerspective())이 있다.

gluPerspective()는 직관적으로 파악하기 쉬운 편이다.

gluPerspective(fovy, (double)w / (double)h, near, far);

 

glMatrixMode (GL_PROJECTION); //행렬 모드를 투영을 사용을 한다구 지정한다.

//GL_MODELVIEW :행렬 연산이 모델 관측 스택에 적용된다.(장면 상에서 물체를 이동할 때 사용)
//GL_PROJECTION :행렬 연산이 투영 행렬 스택에 적용된다.(클리핑 공간을 정의할 때 사용)
//GL_TEXTURE :행렬 연산이 텍스쳐 행렬 스택에 적용된다.(텍스쳐 좌표를 조작)

은면제거(Hidden Surface Removal)이다. 처음 물체를 그렸는데 그리고 나서 다른 물체는 더 앞에 위치한 물체로 표현을 했는데도 여전히 처음 물체가 뒤의 물체를 가린다는 것이다. 이 문제를 보완하기 위해서는 z버퍼(깊이 검사)라는걸 수행을 하여 관측자로부터 물체가 얼마의 z축의 음의 방향을 향하는지 알아 보면 된다.
이걸 수행하는 함수는 glEnable(GL_DEPTH_TEST)이다.

 

 

http://www.videotutorialsrock.com