Compartir a través de


Función glMaterialiv

La función glMaterialiv especifica parámetros de material para el modelo de iluminación.

Sintaxis

void WINAPI glMaterialfv(
         GLenum face,
         GLenum pname,
   const GLint  *params
);

Parámetros

Cara

Cara o caras que se están actualizando. Debe ser uno de los siguientes: GL_FRONT, GL_BACK o GL_FRONT y GL_BACK.

pname

Parámetro de material de la cara o caras que se están actualizando. Los parámetros que se pueden especificar mediante glMaterialiv, y sus interpretaciones por la ecuación de iluminación, son los siguientes.

Value Significado
GL_AMBIENT
El parámetro params contiene cuatro valores enteros que especifican la reflectancia RGBA ambiente del material. Los valores enteros se asignan linealmente de modo que el valor representable más positivo se asigna a 1,0 y el valor representable más negativo se asigna a -1,0. Los valores de punto flotante se asignan directamente. No se fijan valores enteros ni de punto flotante. La reflectancia ambiental predeterminada para los materiales frontales y posteriores es (0.2, 0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE
El parámetro params contiene cuatro valores enteros que especifican la reflectancia RGBA difusa del material. Los valores enteros se asignan linealmente de modo que el valor representable más positivo se asigna a 1,0 y el valor representable más negativo se asigna a -1,0. Los valores de punto flotante se asignan directamente. No se fijan valores enteros ni de punto flotante. La reflectancia difusa predeterminada para los materiales frontales y posteriores es (0,8, 0,8, 0,8, 1,0).
GL_SPECULAR
El parámetro params contiene cuatro valores enteros que especifican la reflectancia RGBA especular del material. Los valores enteros se asignan linealmente de modo que el valor representable más positivo se asigna a 1,0 y el valor representable más negativo se asigna a -1,0. Los valores de punto flotante se asignan directamente. No se fijan valores enteros ni de punto flotante. La reflectancia especular predeterminada para los materiales frontales y posteriores es (0.0, 0.0, 0.0, 0.0, 1.0).
GL_EMISSION
El parámetro params contiene cuatro valores enteros que especifican la intensidad de luz emitida por RGBA del material. Los valores enteros se asignan linealmente de modo que el valor representable más positivo se asigna a 1,0 y el valor representable más negativo se asigna a -1,0. Los valores de punto flotante se asignan directamente. No se fijan valores enteros ni de punto flotante. La intensidad de emisión predeterminada para los materiales frontales y orientados hacia atrás es (0,0, 0,0, 0,0, 1,0).
GL_SHININESS
El parámetro param es un único entero que especifica el exponente especular RGBA del material. Los valores enteros se asignan directamente. Solo se aceptan valores del intervalo [0, 128]. El exponente especular predeterminado para los materiales frontales y orientados hacia atrás es 0.
GL_AMBIENT_AND_DIFFUSE
Equivalente a llamar a glMaterial dos veces con los mismos valores de parámetro, una vez con GL_AMBIENT y una vez con GL_DIFFUSE.
GL_COLOR_INDEXES
El parámetro params contiene tres valores enteros que especifican los índices de color para la iluminación ambiental, difusa y especular. Estos tres valores, y GL_SHININESS, son los únicos valores materiales utilizados por la ecuación de iluminación del modo de índice de color. Consulte glLightModel para obtener una explicación de la iluminación de índice de color.

params

Valor en el que se establecerá el parámetro GL_SHININESS.

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
Face opname no era un valor aceptado.
GL_INVALID_VALUE
Se especificó un exponente especular fuera del intervalo de [0, 128].

Comentarios

La función glMaterialiv asigna valores a parámetros materiales. Hay dos conjuntos coincidentes de parámetros de material. Uno, el conjunto frontal , se usa para sombrear puntos, líneas, mapas de bits y todos los polígonos (cuando se deshabilita la iluminación de dos lados) o simplemente polígonos orientados hacia delante (cuando se habilita la iluminación de dos lados). El otro conjunto, orientado hacia atrás, se usa para sombrear polígonos orientados hacia atrás solo cuando se habilita la iluminación de dos lados. Consulte glLightModel para obtener más información sobre los cálculos de iluminación de un lado y dos lados.

La función glMaterialiv toma tres argumentos. La primera cara especifica si se modificarán los materiales GL_FRONT, los materiales GL_BACK o ambos materiales GL_FRONT_AND_BACK. El segundo, pname, especifica cuál de varios parámetros de uno o ambos conjuntos se modificará. El tercer parámetro especifica qué valor se asignará al parámetro especificado.

Los parámetros de material se usan en la ecuación de iluminación que se aplica opcionalmente a cada vértice. La ecuación se describe en glLightModel.

Los parámetros de material se pueden actualizar en cualquier momento. En concreto, se puede llamar a glMaterialiv entre una llamada a glBegin y la llamada correspondiente a glEnd. Sin embargo, si solo se va a cambiar un parámetro de material por vértice, glColorMaterial se prefiere sobre glMaterialiv.

La siguiente función recupera información relacionada con glMaterialiv:

glGetMaterial

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

glColorMaterial

glLight

glLightModel