Função glLightfv
A função glLightfv retorna valores de parâmetro de origem leve.
void WINAPI glLightfv(
GLenum light,
GLenum pname,
const GLfloat *params
);
-
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 de ponto flutuante que especificam a intensidade RGBA ambiente da luz. 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 de ponto flutuante que especificam a intensidade RGBA difusa da luz. 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 de ponto flutuante que especificam a intensidade especular RGBA da luz. 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 de ponto flutuante 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 glLightfv é 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 de ponto flutuante 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 glLightfv é 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 de ponto flutuante 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 de ponto flutuante 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 de ponto flutuante 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.
Essa função não retorna um valor.
Os códigos de erro a seguir podem ser recuperados pela função glGetError .
Nome | Significado |
---|---|
|
light ou pname não era um valor aceito. |
|
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. |
|
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd. |
A função glLightfv 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 glLightfv :
glIsEnabled com GL_LIGHTING de argumento
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 |
|
Biblioteca |
|
DLL |
|