Compartilhar via


Função glFrustum

A função glFrustum multiplica a matriz atual por uma matriz de perspectiva.

Sintaxe

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

Parâmetros

esquerda

A coordenada do plano de recorte vertical esquerdo.

direita

A coordenada do plano de recorte vertical direito.

parte inferior

A coordenada do plano de recorte horizontal inferior.

início

A coordenada do plano de recorte horizontal inferior.

zNear

As distâncias até o plano de recorte de quase profundidade. Deve ser positivo.

zFar

As distâncias para os planos de recorte de profundidade. Deve ser positivo.

Retornar valor

Essa função não retorna um valor.

Códigos de erro

Os códigos de erro a seguir podem ser recuperados pela função glGetError .

Nome Significado
GL_INVALID_ENUM
zNear ou zFar não era postitivo.
GL_INVALID_OPERATION
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd.

Comentários

A função glFrustum descreve uma matriz de perspectiva que produz uma projeção de perspectiva. Os parâmetros (esquerda, inferior, zNear) e (direita, superior, zNear) especificam os pontos no plano de recorte próximo mapeado para os cantos inferior esquerdo e superior direito da janela, respectivamente, supondo que o olho esteja localizado em (0,0,0). O parâmetro zFar especifica o local do plano de recorte distante. ZNear e zFar devem ser positivos. A matriz correspondente é mostrada na imagem a seguir.

Diagrama mostrando a matriz de perspectiva que produz uma projeção de perspectiva. Equações mostrando a função glFrustum que descreve uma matriz de perspectiva.

A função glFrustum multiplica a matriz atual por essa matriz, com o resultado substituindo a matriz atual. Ou seja, se M for a matriz atual e F for a matriz de perspectiva de frusto, glFrustum substituirá M por M F.

Use glPushMatrix e glPopMatrix para salvar e restaurar a pilha de matriz atual.

A precisão do buffer de profundidade é afetada pelos valores especificados para zNear e zFar. Quanto maior a proporção de zFar para zNear for, menos eficaz será o buffer de profundidade em distinguir entre superfícies próximas umas das outras. If

Equação mostrando a proporção de muito para perto.

aproximadamente log2 (r) bits de precisão de buffer de profundidade são perdidos. Como r se aproxima do infinito à medida que zNear se aproxima de zero, você nunca deve definir zNear como zero.

As seguintes funções recuperam informações sobre glFrustum:

glGet com GL_MATRIX_MODE de argumento

glGet com GL_MODELVIEW_MATRIX de argumento

glGet com GL_PROJECTION_MATRIX de argumento

glGet com GL_TEXTURE_MATRIX de argumento

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Gl.h
Biblioteca
Opengl32.lib
DLL
Opengl32.dll

Confira também

glBegin

glEnd

glGet

glMatrixMode

glMultMatrix

glOrtho

glPopMatrix

glPushMatrix

glViewport