Share via


Função glMaterialfv

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

Sintaxe

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

Parâmetros

Cara

O rosto ou 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 glMaterialfv 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 de ponto flutuante 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 mapeia para 1,0 e o valor representável mais negativo mapeia 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 de ponto flutuante 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 mapeia para 1,0 e o valor representável mais negativo mapeia 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 de ponto flutuante 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 mapeia para 1,0 e o valor representável mais negativo mapeia 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 de ponto flutuante 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 mapeia para 1,0 e o valor representável mais negativo mapeia 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 valor inteiro que especifica o expoente especular RGBA do material. Os valores inteiros são mapeados diretamente. Somente os 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 de ponto flutuante especificando os índices de cor para iluminação ambiente, difusa e especular. Esses três valores e GL_SHININESS são os únicos valores de material usados pela equação de iluminação do modo de índice de cores. Consulte glLightModel para obter uma discussão sobre iluminação de í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 glMaterialfv atribui valores a parâmetros materiais. Há dois conjuntos correspondentes de parâmetros materiais. Um deles, o conjunto frontal , é usado para sombrear pontos, linhas, bitmaps e todos os polígonos (quando a iluminação de dois lados é desabilitada) ou apenas polígonos voltados para a frente (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 de um lado e de dois lados.

A função glMaterialfv 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, param, especifica qual valor será atribuído ao parâmetro especificado.

Os 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, glMaterialfv pode ser chamado entre uma chamada para glBegin e a chamada correspondente para glEnd. Se apenas um único parâmetro de material for alterado por vértice, no entanto, glColorMaterial será preferido em relação a glMaterialfv.

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

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