Compartir a través de


Función glTexGenfv

Controla la generación de coordenadas de textura.

Sintaxis

void WINAPI glTexGenfv(
         GLenum  coord,
         GLenum  pname,
   const GLfloat *params
);

Parámetros

coord

Coordenada de textura. Debe ser uno de los siguientes: GL_S, GL_T, GL_R o GL_Q.

pname

Nombre simbólico de la función de generación de coordenadas de textura.

params

Matriz de floats que contiene los coeficientes de la función de generación de texturas correspondiente.

GLfloat zPlane[] = { 0.0f, 0.0f, 1.0f, 0.0f };

Valor devuelto

Esta función no devuelve ningún valor.

Códigos de error

La función glGetError puede recuperar los siguientes códigos de error.

Nombre Significado
GL_INVALID_ENUM
coord o pname no era un valor definido aceptado, o pname se GL_TEXTURE_GEN_MODE y los parámetros no eran un valor definido aceptado.
GL_INVALID_OPERATION
Se llamó a la función entre una llamada a glBegin y la llamada correspondiente a glEnd.

Comentarios

La función glTexGen selecciona una función de generación de coordenadas de textura o proporciona coeficientes para una de las funciones. El parámetro coord nombra una de las coordenadas de textura (s,t,r,q) y debe ser uno de estos símbolos: GL_S, GL_T, GL_R o GL_Q. El parámetro pname debe ser una de las tres constantes simbólicas: GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE o GL_EYE_PLANE. Si pname es GL_OBJECT_PLANE o GL_EYE_PLANE, el parámetro contiene coeficientes para la función de generación de textura correspondiente.

Si la función de generación de texturas es GL_OBJECT_LINEAR, la función

! [Ecuación que muestra la función glTexGen cuando la función de generación de texturas es GL_OBJECT_LINEAR.]

se utiliza, donde g es el valor calculado para la coordenada denominada en coord; p1, p2, p3 y p4 son los cuatro valores proporcionados en parámetros; y x?, y?, z?, y w? son las coordenadas de objeto del vértice. Puede usar esta función para asignar terrenos de mapa de textura mediante el nivel de mar como plano de referencia (definido por p1, p2, p3 y p4). La función de generación de coordenadas GL_OBJECT_LINEAR calcula la altitud de un vértice de terreno como su distancia desde el nivel del mar; esa altitud se usa para indexar la imagen de textura para asignar nieve blanca a picos y hierba verde a las colinas, por ejemplo.

Si la función de generación de texturas es GL_EYE_LINEAR, la función

! [Ecuación que muestra la función glTexGen cuando la función de generación de texturas está GL_EYE_LINEAR.]

se usa, donde

Ecuación que muestra las coordenadas oculares del vértice.

y x?, y?, z?, y w? son las coordenadas oculares del vértice, p1, p2, p3 y p4 son los valores proporcionados en parámetros y M es la matriz de vista del modelo al llamar a glTexGen. Si M está mal condicionado o singular, las coordenadas de textura generadas por la función resultante pueden ser inexactas o no definidas.

Tenga en cuenta que los valores del parámetro definen un plano de referencia en coordenadas oculares. La matriz modelview que se aplica a ellas puede no ser la misma en vigor cuando se transforman los vértices poligonales. Esta función establece un campo de coordenadas de textura que puede producir líneas de contorno dinámicos en objetos móviles.

Si pname es GL_SPHERE_MAP y coord es GL_S o GL_T, las coordenadas de textura s y t se generan de la siguiente manera. Vamos a ser el vector de unidad que apunta desde el origen al vértice poligonal (en coordenadas oculares). Deje que n sea el normal actual, después de la transformación en coordenadas oculares. Deje que f = (fx ( ) fy ( ) fz)T sea el vector de reflexión de modo que

Ecuación que muestra el vector de reflexión como una función del vector de unidad y la normal actual.

Por último, deje que

Ecuación que muestra m como una función del vector de reflexión.

A continuación, los valores asignados a las coordenadas de textura i y t son

Ecuación que muestra los valores asignados a las coordenadas de textura i y t.

Puede habilitar o deshabilitar una función de generación de coordenadas de textura mediante glEnable o glDisable con uno de los nombres simbólicos de coordenadas de textura (GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T, GL_TEXTURE_GEN_R o GL_TEXTURE_GEN_Q) como argumento. Cuando esta función está habilitada, la coordenada de textura especificada se calcula según la función de generación asociada a esa coordenada. Cuando esta función está deshabilitada, los vértices posteriores toman la coordenada de textura especificada del conjunto actual de coordenadas de textura. Inicialmente, todas las funciones de generación de texturas se establecen en GL_EYE_LINEAR y están deshabilitadas. Ambas ecuaciones de plano son (1,0,0,0); ambas ecuaciones de plano t son (0,1,0,0); y todas las ecuaciones de plano r y q son (0,0,0,0).

Las siguientes funciones recuperan información relacionada con glTexGen:

glGetTexGen
glIsEnabled con GL_TEXTURE_GEN_S de argumento
glIsEnabled con GL_TEXTURE_GEN_T de argumento
glIsEnabled con GL_TEXTURE_GEN_R de argumentos
glIsEnabled con GL_TEXTURE_GEN_Q de argumento

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Gl.h
Biblioteca
Opengl32.lib
Archivo DLL
Opengl32.dll

Consulte también

glBegin

glEnd

glCopyTexImage2D

glCopyTexSubImage2D

glGetTexGen

glIsEnabled

glTexEnv

glTexImage1D

glTexParameter

glTexSubImage1D

glTexSubImage2D