본문 바로가기
프로그래머의 길/OpenGL

OpenGL :: 일반 변환 함수들

by 하늘아래. 2009. 7. 9.
반응형

OpenGL에서는 행렬(matrix)에 의해서 변환(transformation)이 표현되고, OpenGL상의 모든 변환은 두 개 또는 그 이상의 행렬에 의해 나타내어진다. 변환에는 관측/투영변환과 행렬에는 관측/투영행렬이 존재한다.

기본변환행렬에 사용되는 함수는 다음과 같은 것들이 있다.


void glMatrixMode(GLenum mode);                    //C
Sub glMatrixMode(mode As glMatrixModeConstants)    'VB


glMatrixMode()
함수는 행렬모드를 설정하는데 모델 뷰(ModelView), 투영(Projection), 텍스쳐(Texture) 행렬 중 하나를 설정한다.


glMatrixMode()함수의 mode인자

mode 상수값(C에서의 상수)

의미

Modelview
(GL_MODELVIEW)

3D공간에 물체의 배치를 수학적으로 표현한 행렬
실제 화면상의 물체에 대한 좌표점을 설정하기 위한 행렬

Projection
(GL_PROJECTION)

3D공간에 카메라 설정을 수학적으로 표현한 행렬

Texture
(GL_TEXTURE)

물체에 적용하고자 하는 2차원 텍스처에 변형을 가하는 방법을 수학적으로 표현한 행렬


이때 중요한 점은 행렬모드를 특정모드로 설정한 다음, 다음에 지정할 변환(투영설정 또는 이동/회전/크기조절)이 효과를 나타낼 수 있도록 현재의 행렬을 초기화하는 glLoadIdentity()함수를 사용해야 한다는 점과 투영모드로 설정한 다음 다시 모델뷰모드로 설정해야 화면에 그림을 그릴 수 있다는 점이다.


glMatrixMode mmProjection                    '
투영모드를 설정한다.
glLoadIdentity                               '
단위행렬을 곱한다. , 행렬을 초기화한다
.
glFrustum -1.0, 1.0, -1.0, 1.0, 1.5, 20.0    '
원근투영을 설정한다
.
glMatrixMode mmModelView                     '
다시 모델뷰 모드를 설정한다
.


glLoadIdentity()
함수는 다음과 같이 선언되어 있다.


void glLoadIdentity(void);    //C
Sub glLoadIdentity()          'VB


현재의 행렬을 4x4단위행렬로 설정하는 함수는 다음과 같다.


void glLoadMatrix{f,d} (const
유형 *m);    //C
void glLoadMatrix{f,d} (m As
유형
)         'VB


다음 함수는 현재 행렬의 16개 값을 m에 대입한다.


void glMultMatrix{f,d} (
유형 *m);    //C
sub glMultMatrix{f,d} (m As
유형)   'VB

 

반응형