Ler em inglês

Compartilhar via


Função glTexGeni

Controla a geração de coordenadas de textura.

Sintaxe

void WINAPI glTexGeni(
   GLenum coord,
   GLenum pname,
   GLint  param
);

Parâmetros

coord

Uma coordenada de textura. Deve ser um dos seguintes: GL_S, GL_T, GL_R ou GL_Q.

Pname

O nome simbólico da função de geração de coordenadas de textura.

param

Um único parâmetro de geração de textura com valor, um de GL_OBJECT_LINEAR, GL_EYE_LINEAR ou GL_SPHERE_MAP.

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
coord ou pname não era um valor definido aceito ou pname era GL_TEXTURE_GEN_MODE e params não era um valor definido aceito.
GL_INVALID_ENUM
pname era GL_TEXTURE_GEN_MODE, params era GL_SPHERE_MAP, e coord era GL_R ou GL_Q
GL_INVALID_OPERATION
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd.

Comentários

A função glTexGen seleciona uma função de geração de coordenadas de textura ou fornece coeficientes para uma das funções. O parâmetro coord nomeia uma das coordenadas de textura (s,t,r,q) e deve ser um destes símbolos: GL_S, GL_T, GL_R ou GL_Q. O parâmetro pname deve ser uma das três constantes simbólicas: GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE ou GL_EYE_PLANE. Se pname for GL_TEXTURE_GEN_MODE, param especificará um modo, um de GL_OBJECT_LINEAR, GL_EYE_LINEAR ou GL_SPHERE_MAP. Se pname for GL_OBJECT_PLANE ou GL_EYE_PLANE, param conterá coeficientes para a função de geração de textura correspondente.

Se a função de geração de textura for GL_OBJECT_LINEAR, a função

! [Equação mostrando a função glTexGen quando a função de geração de textura é GL_OBJECT_LINEAR.]

é usado, em que g é o valor calculado para a coordenada nomeada em coord; p1, p2, p3 e p4 são os quatro valores fornecidos em parâmetros; e x?, y?, z?, e w? são as coordenadas de objeto do vértice. Você pode usar essa função para mapear terrenos de textura usando o nível do mar como um plano de referência (definido por p1, p2, p3 e p4). A função de geração de coordenadas GL_OBJECT_LINEAR calcula a altitude de um vértice de terreno como sua distância do nível do mar; essa altitude é usada para indexar a imagem de textura para mapear neve branca em picos e grama verde em sopés, por exemplo.

Se a função de geração de textura for GL_EYE_LINEAR, a função

! [Equação mostrando a função glTexGen quando a função de geração de textura é GL_EYE_LINEAR.]

é usado, em que

Equação mostrando as coordenadas oculares do vértice.

e x?, y?, z?, e w? são as coordenadas oculares do vértice, p1, p2, p3 e p4 são os valores fornecidos no parâmetro e M é a matriz de visão de modelo quando você chama glTexGen. Se M for mal condicionada ou singular, as coordenadas de textura geradas pela função resultante poderão ser imprecisas ou indefinidas.

Observe que os valores no parâmetro definem um plano de referência em coordenadas oculares. A matriz de visão de modelo que é aplicada a eles pode não ser a mesma em vigor quando os vértices de polígono são transformados. Essa função estabelece um campo de coordenadas de textura que pode produzir linhas de contorno dinâmico em objetos móveis.

Se pname for GL_SPHERE_MAP e coord for GL_S ou GL_T, as coordenadas de textura s e t serão geradas da seguinte maneira. Vamos ser o vetor de unidade que aponta da origem para o vértice do polígono (em coordenadas oculares). Que n seja o normal atual, após a transformação em coordenadas oculares. Let f = (fx ( ) fy ( ) fz)T ser o vetor de reflexão de modo que

Equação mostrando o vetor de reflexão como uma função de vetor de unidade e normal atual.

Por fim, vamos

Equação mostrando m como uma função de vetor de reflexão.

Em seguida, os valores atribuídos às coordenadas de textura i e t são

Equação mostrando valores atribuídos às coordenadas de textura i e t.

Você pode habilitar ou desabilitar uma função de geração de coordenadas de textura usando glEnable ou glDisable com um dos nomes simbólicos de coordenadas de textura (GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T, GL_TEXTURE_GEN_R ou GL_TEXTURE_GEN_Q) como o argumento. Quando essa função está habilitada, a coordenada de textura especificada é calculada de acordo com a função de geração associada a essa coordenada. Quando essa função é desabilitada, os vértices subsequentes assumem a coordenada de textura especificada do conjunto atual de coordenadas de textura. Inicialmente, todas as funções de geração de textura são definidas como GL_EYE_LINEAR e são desabilitadas. Ambas as equações do plano são (1,0,0,0); ambas as equações do plano t são (0,1,0,0); e todas as equações de plano r e q são (0,0,0,0).

As seguintes funções recuperam informações relacionadas ao glTexGen:

glGetTexGen
glIsEnabled com argumento GL_TEXTURE_GEN_S
glIsEnabled com GL_TEXTURE_GEN_T de argumento
glIsEnabled com argumento GL_TEXTURE_GEN_R
glIsEnabled com argumento GL_TEXTURE_GEN_Q

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

glEnd

glCopyTexImage2D

glCopyTexSubImage2D

glGetTexGen

glIsEnabled

glTexEnv

glTexImage1D

glTexParameter

glTexSubImage1D

glTexSubImage2D