Função glTexParameterfv
Define parâmetros de textura.
Sintaxe
void WINAPI glTexParameterfv(
GLenum target,
GLenum pname,
const GLfloat *params
);
Parâmetros
-
destino
-
A textura de destino, que deve ser GL_TEXTURE_1D ou GL_TEXTURE_2D.
-
Pname
-
O nome simbólico de um único parâmetro de textura com valor. Os símbolos a seguir são aceitos em pname.
Valor Significado - GL_TEXTURE_MIN_FILTER
A função de minificação de textura é usada sempre que o pixel que está sendo texturizado é mapeado para uma área maior que um elemento de textura. Há seis funções de minificação definidas. Dois deles usam os quatro elementos de textura mais próximos para calcular o valor da textura. Os outros quatro usam mipmaps.
Um mipmap é um conjunto ordenado de matrizes que representam a mesma imagem em resoluções progressivamente menores. Se a textura tiver dimensões de 2nx2m , haverá max(n, m) + 1 mipmaps. O primeiro mipmap é a textura original, com dimensões de 2nx2m. Cada mipmap subsequente tem dimensões de 2k1x2l1, emque 2 kx2l são as dimensões do mipmap anterior, até k = 0 ou l = 0. Nesse ponto, mipmaps subsequentes têm dimensão 1x2l1 ou 2k1x1 até o mipmap final, que tem dimensão 1x1. Mipmaps são definidos usando glTexImage1D ou glTexImage2D com o argumento level-of-detail indicando a ordem dos mipmaps. O nível 0 é a textura original; level bold max(n, m) é o mipmap 1x1 final.- GL_TEXTURE_MAG_FILTER
A função de ampliação de textura é usada quando o pixel que está sendo texturizado é mapeado para uma área menor ou igual a um elemento de textura. Ele define a função de ampliação de textura como GL_NEAREST ou GL_LINEAR. - GL_TEXTURE_WRAP_S
Define o parâmetro wrap para coordenadas de textura como GL_CLAMP ou GL_REPEAT. GL_CLAMP faz com que as coordenadas de s sejam vinculadas ao intervalo [0,1] e é útil para impedir a encapsulamento de artefatos ao mapear uma única imagem para um objeto. GL_REPEAT faz com que a parte inteira da coordenada s seja ignorada; O OpenGL usa apenas a parte fracionária, criando assim um padrão de repetição. Os elementos de textura de borda serão acessados somente se o encapsulamento estiver definido como GL_CLAMP. Inicialmente, GL_TEXTURE_WRAP_S é definido como GL_REPEAT. - GL_TEXTURE_WRAP_T
Define o parâmetro wrap da coordenada de textura t como GL_CLAMP ou GL_REPEAT. Confira a discussão em GL_TEXTURE_WRAP_S. Inicialmente, GL_TEXTURE_WRAP_T é definido como GL_REPEAT. - GL_TEXTURE_BORDER_COLOR
Define uma cor de borda. O parâmetro params contém quatro valores que compõem a cor RGBA da borda de textura. Os componentes de cor inteiro são interpretados linearmente de modo que o inteiro mais positivo mapeia para 1,0 e o inteiro mais negativo é mapeado para 1,0. Os valores são fixados no intervalo [0,1] quando são especificados. Inicialmente, a cor da borda é (0, 0, 0, 0). - GL_TEXTURE_PRIORITY
Especifica a prioridade de residência de textura da textura associada no momento. Os valores permitidos estão no intervalo [0, 1]. Confira glPrioritizeTextures e glBindTexture para obter mais informações. -
params
-
Um ponteiro para uma matriz em que o valor ou os valores de pname são armazenados. O parâmetro params fornece uma função para minificar a textura como um dos seguintes.
Valor Significado - GL_NEAREST
Retorna o valor do elemento de textura mais próximo (na distância de Manhattan) ao centro do pixel que está sendo texturizado. - GL_LINEAR
Retorna a média ponderada dos quatro elementos de textura mais próximos do centro do pixel que está sendo texturizado. Eles podem incluir elementos de textura de borda, dependendo dos valores de GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T e no mapeamento exato. GL_NEAREST geralmente é mais rápido do que GL_LINEAR, mas pode produzir imagens texturizados com bordas mais nítidas porque a transição entre elementos de textura não é tão suave. O valor padrão de GL_TEXTURE_MAG_FILTER é GL_LINEAR. - GL_NEAREST_MIPMAP_NEAREST
Escolhe o mipmap que mais corresponde ao tamanho do pixel que está sendo texturizado e usa o critério GL_NEAREST (o elemento de textura mais próximo do centro do pixel) para produzir um valor de textura. - GL_LINEAR_MIPMAP_NEAREST
Escolhe o mipmap que mais corresponde ao tamanho do pixel que está sendo texturizado e usa o critério GL_LINEAR (uma média ponderada dos quatro elementos de textura mais próximos do centro do pixel) para produzir um valor de textura. - GL_NEAREST_MIPMAP_LINEAR
Escolhe os dois mipmaps que mais correspondem ao tamanho do pixel que está sendo texturizado e usa o critério GL_NEAREST (o elemento de textura mais próximo do centro do pixel) para produzir um valor de textura de cada mipmap. O valor final da textura é uma média ponderada desses dois valores. - GL_LINEAR_MIPMAP_LINEAR
Escolhe os dois mipmaps que mais correspondem ao tamanho do pixel que está sendo texturizado e usa o critério GL_LINEAR (uma média ponderada dos quatro elementos de textura mais próximos do centro do pixel) para produzir um valor de textura de cada mipmap. O valor final da textura é uma média ponderada desses dois valores. O parâmetro params fornece uma função para ampliar a textura como um dos seguintes.
Valor Significado - GL_NEAREST
Retorna o valor do elemento de textura mais próximo (na distância de Manhattan) ao centro do pixel que está sendo texturizado. - GL_LINEAR
Retorna a média ponderada dos quatro elementos de textura mais próximos do centro do pixel que está sendo texturizado. Eles podem incluir elementos de textura de borda, dependendo dos valores de GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T e no mapeamento exato. GL_NEAREST geralmente é mais rápido do que GL_LINEAR, mas pode produzir imagens texturizados com bordas mais nítidas porque a transição entre elementos de textura não é tão suave. O valor padrão de GL_TEXTURE_MAG_FILTER é GL_LINEAR.
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 |
---|---|
|
target ou pname não era um dos valores definidos aceitos ou quando param deveria ter um valor constante definido (com base no valor de pname) e não tinha. |
|
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd. |
Comentários
O mapeamento de textura é uma técnica que aplica uma imagem à superfície de um objeto como se a imagem fosse um envoltório de decalque ou cellophane. A imagem é criada no espaço de textura, com um sistema de coordenadas (s, t). Uma textura é uma imagem unidimensional ou unidimensional e um conjunto de parâmetros que determinam como as amostras são derivadas da imagem.
A função glTexParameter atribui o valor ou os valores em parâmetros ao parâmetro de textura especificado como pname. O parâmetro de destino define a textura de destino, seja GL_TEXTURE_1D ou GL_TEXTURE_2D.
À medida que mais elementos de textura forem amostrados no processo de minificação, menos artefatos de alias serão aparentes. Embora as GL_NEAREST e GL_LINEAR funções de minificação possam ser mais rápidas do que as outras quatro, elas amostram apenas um ou quatro elementos de textura para determinar o valor de textura do pixel que está sendo renderizado e podem produzir padrões de moire ou transições irregulares. O valor padrão de GL_TEXTURE_MIN_FILTER é GL_NEAREST_MIPMAP_LINEAR.
Suponha que a texturização esteja habilitada (chamando glEnable com GL_TEXTURE_1D de argumento ou GL_TEXTURE_2D) e GL_TEXTURE_MIN_FILTER seja definida como uma das funções que exigem um mipmap. Se as dimensões das imagens de textura definidas atualmente (com chamadas anteriores para glTexImage1D ou glTexImage2D) não seguirem a sequência adequada para mipmaps ou houver menos imagens de textura definidas do que o necessário ou o conjunto de imagens de textura tiver números diferentes de componentes de textura, será como se o mapeamento de textura estivesse desabilitado. A filtragem linear acessa os quatro elementos de textura mais próximos apenas em texturas 2D. Em texturas 1D, a filtragem linear acessa os dois elementos de textura mais próximos. A função a seguir recupera informações relacionadas a glTexParameterf, glTexParameteri, glTexParameterfv e glTexParameteriv:
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 |
|