funzione glFrustum

La funzione glFrustum moltiplica la matrice corrente per una matrice prospettica.

Sintassi

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

Parametri

Sinistra

Coordinata per il piano di ritaglio verticale sinistro.

va bene

Coordinata per il piano di ritaglio verticale destro.

Fondoschiena

Coordinata per il piano di ritaglio orizzontale inferiore.

top

Coordinata per il piano di ritaglio orizzontale inferiore.

zNear

Distanze del piano di ritaglio vicino alla profondità. Deve essere positivo.

zFar

Distanze dei piani di ritaglio di profondità. Deve essere positivo.

Valore restituito

Questa funzione non restituisce un valore.

Codici di errore

I codici di errore seguenti possono essere recuperati dalla funzione glGetError .

Nome Significato
GL_INVALID_ENUM
zNear o zFar non era postiva.
GL_INVALID_OPERATION
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd.

Commenti

La funzione glFrustum descrive una matrice prospettica che produce una proiezione prospettica. I parametri (sinistra, inferiore, zNear) e (destra, superiore, zNear) specificano rispettivamente i punti sul piano di ritaglio vicino mappato agli angoli inferiore sinistro e superiore destro della finestra, presupponendo che l'occhio si trovi in (0,0,0). Il parametro zFar specifica la posizione del piano di ritaglio lontano. Sia zNear che zFar devono essere positivi. La matrice corrispondente è illustrata nell'immagine seguente.

Diagramma che mostra la matrice prospettica che produce una proiezione prospettica.Equazioni che mostrano la funzione glFrustum che descrive una matrice prospettica.

La funzione glFrustum moltiplica la matrice corrente per questa matrice, con il risultato che sostituisce la matrice corrente. Ovvero, se M è la matrice corrente e F è la matrice prospettica frustum, glFrustum sostituisce M con M F.

Usare glPushMatrix e glPopMatrix per salvare e ripristinare lo stack di matrici corrente.

La precisione del buffer di profondità è influenzata dai valori specificati per zNear e zFar. Maggiore è il rapporto tra zFar e zNear , meno efficace sarà il buffer di profondità a distinguere tra le superfici vicine. Se

Equazione che mostra il rapporto tra lontano e vicino.

circa 2 (r) bit di precisione del buffer di profondità vengono persi. Poiché r si avvicina all'infinito perché zNear si avvicina a zero, non è mai consigliabile impostare zNear su zero.

Le funzioni seguenti recuperano informazioni su glFrustum:

glGet con argomento GL_MATRIX_MODE

glGet con argomento GL_MODELVIEW_MATRIX

glGet con argomento GL_PROJECTION_MATRIX

glGet con argomento GL_TEXTURE_MATRIX

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Gl.h
Libreria
Opengl32.lib
DLL
Opengl32.dll

Vedi anche

glBegin

glEnd

glGet

glMatrixMode

glMultMatrix

glOrtho

glPopMatrix

glPushMatrix

glViewport