Função glLightiv

A função glLightiv retorna valores de parâmetro de origem leve.

Sintaxe

void WINAPI glLightiv(
         GLenum light,
         GLenum pname,
   const GLint  *params
);

Parâmetros

light

O identificador de uma luz. O número de luzes possíveis depende da implementação, mas pelo menos oito luzes têm suporte. Eles são identificados por nomes simbólicos do formulário GL_LIGHTi onde i é um valor: 0 a GL_MAX_LIGHTS - 1.

Pname

Um parâmetro de fonte de luz para luz. Os nomes simbólicos a seguir são aceitos.

Valor Significado
GL_AMBIENT
O parâmetro params contém quatro valores inteiros que especificam a intensidade RGBA ambiente da luz. 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 luz ambiente padrão é (0,0, 0,0, 0,0, 1,0).
GL_DIFFUSE
O parâmetro params contém quatro valores inteiros que especificam a intensidade RGBA difusa da luz. 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 difusa padrão é (0.0, 0.0, 0.0, 1.0) para todas as luzes que não sejam a luz zero. A intensidade difusa padrão de zero claro é (1.0, 1.0, 1.0, 1.0).
GL_SPECULAR
O parâmetro params contém quatro valores inteiros que especificam a intensidade RGBA especular da luz. 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 especular padrão é (0.0, 0.0, 0.0, 1.0) para todas as luzes que não sejam a luz zero. A intensidade especular padrão do zero claro é (1.0, 1.0, 1.0, 1.0).
GL_POSITION
O parâmetro params contém quatro valores inteiros que especificam a posição da luz em coordenadas homogêneas do objeto. Os valores inteiros e de ponto flutuante são mapeados diretamente. Nem valores inteiros nem de ponto flutuante são fixados.
A posição é transformada pela matriz de visão de modelo quando glLightiv é chamado (como se fosse um ponto) e é armazenada em coordenadas oculares. Se o componente w da posição for 0.0, a luz será tratada como uma fonte direcional. Cálculos de iluminação difusa e especular tomam a direção da luz, mas não sua posição real, em conta, e a atenuação está desabilitada. Caso contrário, cálculos de iluminação difusa e especular são baseados no local real da luz nas coordenadas oculares e a atenuação está habilitada. A posição padrão é (0,0,1,0); portanto, a fonte de luz padrão é direcional, paralela a e na direção do eixo -z .
GL_SPOT_DIRECTION
O parâmetro params contém três valores inteiros que especificam a direção da luz em coordenadas homogêneas do objeto. Os valores inteiros e de ponto flutuante são mapeados diretamente. Nem valores inteiros nem de ponto flutuante são fixados.
A direção spot é transformada pelo inverso da matriz de visão de modelo quando glLightiv é chamado (como se fosse normal) e é armazenado em coordenadas oculares. Ela só é significativa quando GL_SPOT_CUTOFF não é 180, o que é por padrão. A direção padrão é (0,0,1).
GL_SPOT_EXPONENT
O parâmetro params é um único valor inteiro que especifica a distribuição de intensidade da luz. Valores inteiros e de ponto flutuante são mapeados diretamente. Somente os valores no intervalo [0, 128] são aceitos.
A intensidade de luz efetiva é atenuada pelo cosseno do ângulo entre a direção da luz e a direção da luz até o vértice que está sendo iluminado, elevado à potência do expoente spot. Assim, expoentes spot mais altos resultam em uma fonte de luz mais focada, independentemente do ângulo de corte de ponto. O expoente spot padrão é 0, resultando em distribuição de luz uniforme.
GL_SPOT_CUTOFF
O parâmetro params é um único valor inteiro que especifica o ângulo máximo de propagação de uma fonte de luz. Valores inteiros e de ponto flutuante são mapeados diretamente. Somente os valores no intervalo [0, 90] e no valor especial 180 são aceitos.
Se o ângulo entre a direção da luz e a direção da luz para o vértice que está sendo iluminado for maior que o ângulo de corte de ponto, a luz será completamente mascarada. Caso contrário, sua intensidade é controlada pelo expoente spot e pelos fatores de atenuação. O corte de ponto padrão é 180, resultando em distribuição de luz uniforme.
GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION
O parâmetro params é um único valor inteiro que especifica um dos três fatores de atenuação leve. Valores inteiros e de ponto flutuante são mapeados diretamente. Somente valores não negativos são aceitos.
Se a luz for posicional, em vez de direcional, sua intensidade será atenuada pela recíproca da soma de: o fator constante, o fator linear multiplicado pela distância entre a luz e o vértice que está sendo iluminado e o fator quadrático multiplicado pelo quadrado da mesma distância. Os fatores de atenuação padrão são (1,0,0), resultando em nenhuma atenuação.

params

Especifica o valor para o qual o parâmetro pname da luz da fonte de luz será definido como.

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
light ou pname não era um valor aceito.
GL_INVALID_VALUE
Um valor de expoente spot foi especificado fora do intervalo [0, 128], ou o corte spot foi especificado fora do intervalo [0, 90] (exceto pelo valor especial 180) ou um fator de atenuação negativo foi especificado.
GL_INVALID_OPERATION
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd.

Comentários

A função glLightiv define o valor ou os valores dos parâmetros de fonte de luz individuais. O parâmetro light nomeia a luz e é um nome simbólico do formulário GL_LIGHTi, em que 0 = i< GL_MAX_LIGHTS.

O parâmetro pname especifica um dos parâmetros de fonte de luz, novamente por nome simbólico. O parâmetro params é um único valor ou um ponteiro para uma matriz que contém os novos valores.

O cálculo de iluminação é habilitado e desabilitado usando glEnable e glDisable com GL_LIGHTING de argumento. Quando a iluminação está habilitada, as fontes de luz habilitadas contribuem para o cálculo de iluminação. A fonte de luz i está habilitada e desabilitada usando glEnable e glDisable com o argumento GL_LIGHTi.

É sempre o caso que GL_LIGHTi = GL_LIGHT0 + i.

As seguintes funções recuperam informações relacionadas à função glLightiv :

glGetLight

glIsEnabled com GL_LIGHTING de argumento

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

glColorMaterial

glEnd

glLightModel

glMaterial