Função glLightf

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

Sintaxe

void WINAPI glLightf(
   GLenum  light,
   GLenum  pname,
   GLfloat 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 de ponto flutuante que especifica a distribuição de intensidade da luz. Os valores 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 param é um único valor de ponto flutuante que especifica o ângulo máximo de propagação de uma fonte de luz. Os valores 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 param é um único valor de ponto flutuante que especifica um dos três fatores de atenuação leve. Os valores 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 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 glLightf 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 glLightf :

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