Share via


glFrustum 함수

glFrustum 함수는 현재 행렬을 원근 행렬로 곱합니다.

구문

void WINAPI glFrustum(
   GLdouble left,
   GLdouble right,
   GLdouble bottom,
   GLdouble top,
   GLdouble zNear,
   GLdouble zFar
);

매개 변수

left

왼쪽 세로 클리핑 평면의 좌표입니다.

right

오른쪽 세로 클리핑 평면의 좌표입니다.

bottom

아래쪽 가로 클리핑 평면의 좌표입니다.

top

아래쪽 가로 클리핑 평면의 좌표입니다.

zNear

거의 깊이의 클리핑 평면까지의 거리입니다. 양수여야 합니다.

zFar

원거리 클리핑 평면까지의 거리입니다. 양수여야 합니다.

반환 값

이 함수는 값을 반환하지 않습니다.

오류 코드

glGetError 함수에서 다음 오류 코드를 검색할 수 있습니다.

Name 의미
GL_INVALID_ENUM
zNear 또는 zFar 가 게시되지 않았습니다.
GL_INVALID_OPERATION
함수는 glBegin 호출과 glEnd에 대한 해당 호출 간에 호출되었습니다.

설명

glFrustum 함수는 원근 투영을 생성하는 원근 행렬을 설명합니다. (왼쪽, 아래쪽, zNear) 및 (오른쪽, 위쪽, zNear) 매개 변수는 눈이 (0,0,0)에 있다고 가정하여 각각 창의 왼쪽 아래 및 오른쪽 위 모서리에 매핑되는 가까운 클리핑 평면의 점을 지정합니다. zFar 매개 변수는 원거리 클리핑 평면의 위치를 지정합니다. zNearzFar는 모두 양수여야 합니다. 해당 행렬은 다음 이미지에 표시됩니다.

큐브 뷰 프로젝션을 생성하는 큐브 뷰 행렬을 보여 주는 다이어그램원근 행렬을 설명하는 glFrustum 함수를 보여 주는 수식입니다.

glFrustum 함수는 현재 행렬을 이 행렬과 곱하고 결과는 현재 행렬을 대체합니다. 즉, M이 현재 행렬이고 F가 frustum 큐브 뷰 행렬인 경우 glFrustum 은 M을 M F로 바꿉니다.

glPushMatrixglPopMatrix를 사용하여 현재 행렬 스택을 저장하고 복원합니다.

깊이 버퍼 정밀도는 zNear 및 zFar 에 지정된 값의 영향을 받 습니다. zFarzNear의 비율이 클수록 깊이 버퍼가 서로 가까이 있는 표면을 구분하는 데 덜 효과적입니다. 조건

멀리에서 가까운 비율의 수식을 보여 주는 수식입니다.

대략 로그2(r) 깊이 버퍼 정밀도 비트가 손실됩니다. zNear가 0에 가까워지면 r이 무한대에 접근하므로 zNear를 0으로 설정해서는 안 됩니다.

다음 함수는 glFrustum에 대한 정보를 검색합니다.

인수가 GL_MATRIX_MODE glGet

인수가 GL_MODELVIEW_MATRIX glGet

인수가 GL_PROJECTION_MATRIX glGet

인수가 GL_TEXTURE_MATRIX glGet

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Gl.h
라이브러리
Opengl32.lib
DLL
Opengl32.dll

추가 정보

glBegin

glEnd

glGet

glMatrixMode

glMultMatrix

glOrtho

glPopMatrix

glPushMatrix

glViewport