Função glLighti

A função glLighti retorna valores de parâmetro de fonte de luz.

Sintaxe

void WINAPI glLighti(
   GLenum light,
   GLenum pname,
   GLint  param
);

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 de valor único para luz. Os nomes simbólicos a seguir são aceitos.

Valor Significado
GL_SPOT_EXPONENT
O parâmetro param é um único valor inteiro que especifica a distribuição de intensidade da luz. Valores inteiros e de ponto flutuante são mapeados diretamente. Somente valores no intervalo [0, 128] são aceitos.
A intensidade efetiva da luz é 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 ao poder do expoente spot. Assim, expoentes de ponto mais alto 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 param é 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 spot padrão é 180, resultando em distribuição de luz uniforme.
GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION
O parâmetro param é um único valor inteiro que especifica um dos três fatores de atenuação de luz. 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.

param

Especifica o valor para o qual o parâmetro pname da luz de origem da luz 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
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 de 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 glLighti 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 param é 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 glLighti :

glGetLight

glIsEnabled com argumento GL_LIGHTING

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