funzione glStencilFunc

La funzione glStencilFunc imposta la funzione e il valore di riferimento per il test degli stencil.

Sintassi

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

Parametri

func

Funzione di test. Gli otto token seguenti sono validi.

Valore Significato
GL_NEVER
Ha sempre esito negativo.
GL_LESS
Passa se (ref & mask) < (stencil & mask).
GL_LEQUAL
Passa se (ref & mask) = (stencil & mask).
GL_GREATER
Passa se (ref & mask) > (stencil & mask).
GL_GEQUAL
Passa se (ref & mask) = (stencil & mask).
GL_EQUAL
Passa se (ref & mask) = (stencil & mask).
GL_NOTEQUAL
Passa se (ref & mask) ? (stencil & mask).
GL_ALWAYS
Passa sempre.

ref

Valore di riferimento per il test dello stencil. Il parametro ref è bloccato all'intervallo [0, 2n 1], dove n è il numero di bitplani nel buffer degli stencil.

Maschera

Maschera che è ANDed con il valore di riferimento e il valore dello stencil archiviato al termine del test.

Valore restituito

Questa funzione non restituisce un valore.

Codici errore

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

Nome Significato
GL_INVALID_ENUM
func non era uno degli otto valori accettati.
GL_INVALID_OPERATION
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd.

Osservazioni:

Lo stenciling, ad esempio il buffer z, abilita e disabilita il disegno in base al pixel. Disegnare nei piani degli stencil usando primitive di disegno OpenGL, quindi eseguire il rendering di geometria e immagini, usando i piani stencil per mascherare parti dello schermo. Lo stenciling viene in genere usato negli algoritmi di rendering multipass per ottenere effetti speciali, ad esempio decali, struttura e rendering costruttivo della geometria solida.

Lo stencil test elimina in modo condizionale un pixel in base al risultato di un confronto tra il valore di riferimento e il valore nel buffer degli stencil. Il test è abilitato da glEnable e glDisable con argomento GL_STENCIL_TEST. Le azioni eseguite in base al risultato del test dello stencil vengono specificate con glStencilOp.

Il parametro func è una costante simbolica che determina la funzione di confronto degli stencil. Accetta uno degli otto valori indicati in precedenza. Il parametro ref è un valore di riferimento integer usato nel confronto degli stencil. È bloccato all'intervallo [0, 2n 1], dove n è il numero di bitplani nel buffer degli stencil. Il parametro mask è ANDbit per bit con sia il valore di riferimento che il valore dello stencil archiviato, con i valori ANDed che partecipano al confronto.

Se stencil rappresenta il valore archiviato nella posizione del buffer stencil corrispondente, l'elenco precedente mostra l'effetto di ogni funzione di confronto che può essere specificata da func. Solo se il confronto ha esito positivo è il pixel passato alla fase successiva nel processo di rasterizzazione (vedere glStencilOp). Tutti i test considerano i valori degli stencil come interi senza segno nell'intervallo [0, 2n 1], dove n è il numero di bitplanes nel buffer degli stencil.

Inizialmente, il test degli stencil è disabilitato. Se non è presente alcun buffer di stencil, non può verificarsi alcuna modifica dello stencil ed è come se il test dello stencil superi sempre.

Le funzioni seguenti recuperano informazioni correlate a glStencilFunc:

glGet con argomento GL_STENCIL_FUNC

glGet con argomento GL_STENCIL_VALUE_MASK

glGet con argomento GL_STENCIL_REF

glGet con argomento GL_STENCIL_BITS

glIsEnabled con argomento GL_STENCIL_TEST

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

glAlphaFunc

glBegin

glBlendFunc

glDepthFunc

glEnable

glEnd

glIsEnabled

glLogicOp

glStencilOp