Função glStencilFunc
A função glStencilFunc define a função e o valor de referência para teste de estêncil.
Sintaxe
void WINAPI glStencilFunc(
GLenum func,
GLint ref,
GLuint mask
);
Parâmetros
-
func
-
A função de teste. Os oito tokens a seguir são válidos.
Valor Significado - GL_NEVER
Sempre falha. - GL_LESS
Passa se (máscararef&) < (máscarade estêncil&). - GL_LEQUAL
Passa se (máscararef&) = (máscarade estêncil&). - GL_GREATER
Passa se (máscararef&) > (máscarade estêncil&). - GL_GEQUAL
Passa se (máscararef&) = (máscarade estêncil&). - GL_EQUAL
Passa se (máscararef&) = (máscarade estêncil&). - GL_NOTEQUAL
Passa se (máscararef&) ? (estêncil&máscara). - GL_ALWAYS
Sempre passa. -
ref
-
O valor de referência para o teste de estêncil. O parâmetro ref é fixado ao intervalo [0, 2n 1], em que n é o número de planos de bits no buffer de estêncil.
-
mask
-
Uma máscara que é ANDcom o valor de referência e o valor do estêncil armazenado quando o teste é feito.
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 |
---|---|
|
func não foi um dos oito valores aceitos. |
|
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd. |
Comentários
O estêncil, como o buffer z, habilita e desabilita o desenho por pixel. Você desenha nos planos de estêncil usando primitivos de desenho OpenGL e, em seguida, renderiza geometria e imagens, usando os planos de estêncil para mascarar partes da tela. O estêncil normalmente é usado em algoritmos de renderização multipasso para obter efeitos especiais, como decalques, estrutura de tópicos e renderização de geometria sólida construtiva.
O teste de estêncil elimina condicionalmente um pixel com base no resultado de uma comparação entre o valor de referência e o valor no buffer de estêncil. O teste é habilitado por glEnable e glDisable com GL_STENCIL_TEST de argumento. As ações executadas com base no resultado do teste de estêncil são especificadas com glStencilOp.
O parâmetro func é uma constante simbólica que determina a função de comparação de estêncil. Ele aceita um dos oito valores mostrados acima. O parâmetro ref é um valor de referência inteiro usado na comparação de estêncil. Ele é fixado ao intervalo [0, 2n 1], em que n é o número de planos de bits no buffer de estêncil. O parâmetro mask é bit a bit ANDcom o valor de referência e o valor do estêncil armazenado, com os valores anded participando da comparação.
Se o estêncil representar o valor armazenado no local do buffer de estêncil correspondente, a lista anterior mostrará o efeito de cada função de comparação que pode ser especificada pelo func. Somente se a comparação for bem-sucedida é que o pixel passou para o próximo estágio no processo de rasterização (consulte glStencilOp). Todos os testes tratam valores de estêncil como inteiros sem sinal no intervalo [0, 2n 1], em que n é o número de planos de bits no buffer de estêncil.
Inicialmente, o teste de estêncil está desabilitado. Se não houver nenhum buffer de estêncil, nenhuma modificação de estêncil poderá ocorrer e será como se o teste de estêncil sempre fosse aprovado.
As seguintes funções recuperam informações relacionadas a glStencilFunc:
glGet com GL_STENCIL_FUNC de argumento
glGet com GL_STENCIL_VALUE_MASK de argumento
glGet com GL_STENCIL_REF de argumento
glGet com GL_STENCIL_BITS de argumento
glIsEnabled com GL_STENCIL_TEST 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 |
|
Biblioteca |
|
DLL |
|