Função glMaterialiv

A função glMaterialiv especifica parâmetros de material para o modelo de iluminação.

Sintaxe

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

Parâmetros

Cara

O rosto ou os rostos que estão sendo atualizados. Deve ser um dos seguintes: GL_FRONT, GL_BACK ou GL_FRONT e GL_BACK.

Pname

O parâmetro material do rosto ou rostos que estão sendo atualizados. Os parâmetros que podem ser especificados usando glMaterialiv e suas interpretações pela equação de iluminação são os seguintes.

Valor Significado
GL_AMBIENT
O parâmetro params contém quatro valores inteiros que especificam a reflexão RGBA ambiente do material. Os valores inteiros são mapeados linearmente de modo que o valor representável mais positivo seja mapeado para 1,0 e o valor representável mais negativo seja mapeado para -1,0. Os valores de ponto flutuante são mapeados diretamente. Nem valores inteiros nem de ponto flutuante são fixados. A reflexão de ambiente padrão para materiais voltados para frente e para trás é (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE
O parâmetro params contém quatro valores inteiros que especificam a reflexão RGBA difusa do material. Os valores inteiros são mapeados linearmente de modo que o valor representável mais positivo seja mapeado para 1,0 e o valor representável mais negativo seja mapeado para -1,0. Os valores de ponto flutuante são mapeados diretamente. Nem valores inteiros nem de ponto flutuante são fixados. A reflexão difusa padrão para materiais voltados para frente e para trás é (0,8, 0,8, 0,8, 1,0).
GL_SPECULAR
O parâmetro params contém quatro valores inteiros que especificam a reflexão RGBA especular do material. Os valores inteiros são mapeados linearmente de modo que o valor representável mais positivo seja mapeado para 1,0 e o valor representável mais negativo seja mapeado para -1,0. Os valores de ponto flutuante são mapeados diretamente. Nem valores inteiros nem de ponto flutuante são fixados. A reflexão especular padrão para materiais voltados para frente e para trás é (0.0, 0.0, 0.0, 1.0).
GL_EMISSION
O parâmetro params contém quatro valores inteiros que especificam a intensidade de luz emitida pelo RGBA do material. Os valores inteiros são mapeados linearmente de modo que o valor representável mais positivo seja mapeado para 1,0 e o valor representável mais negativo seja mapeado para -1,0. Os valores de ponto flutuante são mapeados diretamente. Nem valores inteiros nem de ponto flutuante são fixados. A intensidade de emissão padrão para materiais voltados para frente e para trás é (0,0, 0,0, 0,0, 1,0).
GL_SHININESS
O parâmetro param é um único inteiro que especifica o expoente especular RGBA do material. Os valores inteiros são mapeados diretamente. Somente valores no intervalo [0, 128] são aceitos. O expoente especular padrão para materiais voltados para frente e para trás é 0.
GL_AMBIENT_AND_DIFFUSE
Equivalente a chamar glMaterial duas vezes com os mesmos valores de parâmetro, uma vez com GL_AMBIENT e uma vez com GL_DIFFUSE.
GL_COLOR_INDEXES
O parâmetro params contém três valores inteiros especificando os índices de cor para iluminação ambiente, difusa e especular. Esses três valores, e GL_SHININESS, são os únicos valores materiais usados pela equação de iluminação do modo de índice de cores. Consulte glLightModel para obter uma discussão sobre a iluminação do índice de cores.

params

O valor para o qual o parâmetro GL_SHININESS será definido.

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
Face oupname não era um valor aceito.
GL_INVALID_VALUE
Um expoente especular fora do intervalo de [0, 128] foi especificado.

Comentários

A função glMaterialiv atribui valores a parâmetros de material. Há dois conjuntos correspondentes de parâmetros de material. Um deles, o conjunto frontal , é usado para sombrear pontos, linhas, bitmaps e todos os polígonos (quando a iluminação de dois lados está desabilitada) ou apenas polígonos frontais (quando a iluminação de dois lados está habilitada). O outro conjunto, voltado para trás, é usado para sombrear polígonos voltados para trás somente quando a iluminação de dois lados está habilitada. Consulte glLightModel para obter detalhes sobre cálculos de iluminação lado a lado e de dois lados.

A função glMaterialiv usa três argumentos. O primeiro, face, especifica se os materiais GL_FRONT, os materiais GL_BACK ou ambos os materiais GL_FRONT_AND_BACK serão modificados. O segundo, pname, especifica qual dos vários parâmetros em um ou ambos os conjuntos será modificado. O terceiro parâmetro especifica qual valor será atribuído ao parâmetro especificado.

Parâmetros de material são usados na equação de iluminação que é opcionalmente aplicada a cada vértice. A equação é discutida em glLightModel.

Os parâmetros de material podem ser atualizados a qualquer momento. Em particular, glMaterialiv pode ser chamado entre uma chamada para glBegin e a chamada correspondente para glEnd. No entanto, se apenas um único parâmetro de material for alterado por vértice, glColorMaterial será preferencial em vez de glMaterialiv.

A função a seguir recupera informações relacionadas ao glMaterialiv:

glGetMaterial

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

glColorMaterial

glLight

glLightModel