다음을 통해 공유


glStencilFunc 함수

glStencilFunc 함수는 스텐실 테스트에 대한 함수 및 참조 값을 설정합니다.

구문

void WINAPI glStencilFunc(
   GLenum func,
   GLint  ref,
   GLuint mask
);

매개 변수

func

테스트 함수입니다. 다음 8개의 토큰이 유효합니다.

의미
GL_NEVER
항상 실패합니다.
GL_LESS
if(ref & mask) < (스텐실마스크)를 전달합니다.
GL_LEQUAL
(ref & mask) = (스텐실마스크)를 전달합니다.
GL_GREATER
if(ref & mask) > (스텐실마스크)를 전달합니다.
GL_GEQUAL
(ref & mask) = (스텐실마스크)를 전달합니다.
GL_EQUAL
(ref & mask) = (스텐실마스크)를 전달합니다.
GL_NOTEQUAL
(ref & mask) ? (스텐실마스크).
GL_ALWAYS
항상 전달합니다.

ref

스텐실 테스트에 대한 참조 값입니다. ref 매개 변수는 범위 [0, 2n 1]로 고정됩니다. 여기서 n은 스텐실 버퍼의 비트 평면 수입니다.

마스크

테스트를 완료할 때 참조 값과 저장된 스텐실 값이 모두 있는 ANDed 마스크입니다.

반환 값

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

오류 코드

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

이름 의미
GL_INVALID_ENUM
func 는 8개의 허용되는 값 중 하나가 아니었습니다.
GL_INVALID_OPERATION
glBegin 호출과 glEnd에 대한 해당 호출 사이에 함수가 호출되었습니다.

설명

z 버퍼링과 같은 스텐실링은 픽셀 단위로 그리기를 사용하거나 사용하지 않도록 설정합니다. OpenGL 그리기 기본 형식을 사용하여 스텐실 평면에 그린 다음, 스텐실 평면을 사용하여 기하 도형 및 이미지를 렌더링하여 화면의 일부를 마스킹합니다. 스텐실링은 일반적으로 데칼, 개요 및 건설적인 고체 기하 도형 렌더링과 같은 특수 효과를 얻기 위해 멀티패스 렌더링 알고리즘에 사용됩니다.

스텐실 테스트는 참조 값과 스텐실 버퍼의 값 간의 비교 결과에 따라 픽셀을 조건부로 제거합니다. 이 테스트는 인수 GL_STENCIL_TEST glEnableglDisable에서 사용하도록 설정됩니다. 스텐실 테스트의 결과에 따라 수행되는 작업은 glStencilOp으로 지정됩니다.

func 매개 변수는 스텐실 비교 함수를 결정하는 기호 상수입니다. 위에 표시된 8개 값 중 하나를 허용합니다. ref 매개 변수는 스텐실 비교에 사용되는 정수 참조 값입니다. 범위 [0, 2n 1]로 고정됩니다. 여기서 n 은 스텐실 버퍼의 비트 평면 수입니다. 마스크 매개 변수는 비교에 참여하는 AND ed 값과 함께 참조 값과 저장된 스텐실 값을 모두 사용하여 비트 ANDed입니다.

스텐실이 해당 스텐실 버퍼 위치에 저장된 값을 나타내는 경우 앞의 목록에는 func로 지정할 수 있는 각 비교 함수의 효과가 표시됩니다. 비교에 성공한 경우에만 래스터화 프로세스의 다음 단계로 전달되는 픽셀입니다(glStencilOp 참조). 모든 테스트는 스텐실 값을 [0, 2n 1] 범위의 부호 없는 정수로 처리합니다. 여기서 n은 스텐실 버퍼의 비트 평면 수입니다.

처음에는 스텐실 테스트를 사용할 수 없습니다. 스텐실 버퍼가 없으면 스텐실 수정이 수행되지 않으며 스텐실 테스트가 항상 통과하는 것처럼 표시됩니다.

다음 함수는 glStencilFunc관련된 정보를 검색합니다.

인수 GL_STENCIL_FUNC glGet

인수가 GL_STENCIL_VALUE_MASK glGet

인수가 GL_STENCIL_REF glGet

인수가 GL_STENCIL_BITS glGet

인수 GL_STENCIL_TEST glIsEnabled

요구 사항

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

참고 항목

glAlphaFunc

glBegin

glBlendFunc

glDepthFunc

glEnable

glEnd

glIsEnabled

glLogicOp

glStencilOp