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
GL_INVALID_ENUM
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.
GL_INVALID_OPERATION
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:

glGetTexParameter

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

glBindTexture

glCopyPixels

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage2D

glDrawPixels

glEnd

glGetTexParameter

glPixelStore

glPixelTransfer

glPrioritizeTextures

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexSubImage1D

glTexSubImage2D