Compartilhar via


Fator de atenuação e destaque

Os componentes de iluminação difusa e especular da equação de iluminação global contêm termos que descrevem a atenuação da luz e o cone do holofote. Esses termos são descritos abaixo.

Atenuação

A atenuação de uma luz depende do tipo de luz e da distância entre a luz e a posição do vértice. Para calcular a atenuação, use uma das seguintes equações.

Atten = 1/( att0i + att1i * d + att2i * d²)

Onde:

Parâmetro Valor padrão Type Descrição Intervalo
att0i 0,0 Ponto flutuante Fator de atenuação constante 0 a +infinito
att1i 0,0 Ponto flutuante Fator de atenuação linear 0 a +infinito
att2i 0,0 Ponto flutuante Fator de atenuação quadrática 0 a +infinito
d N/D Ponto flutuante Distância da posição do vértice à posição da luz N/D

 

  • Atten = 1, se a luz for uma luz direcional.
  • Atten = 0, se a distância entre a luz e o vértice exceder o alcance da luz.

A distância entre a luz e a posição do vértice é sempre positiva.

d = | Ldir |

Onde:

Parâmetro Valor padrão Type Descrição
Ldir N/D Vetor 3D com valores de ponto flutuante x, y e z Vetor de direção da posição do vértice para a posição da luz

 

Se d for maior que o intervalo da luz, o Direct3D não fará mais cálculos de atenuação e não aplicará nenhum efeito da luz ao vértice.

As constantes de atenuação atuam como coeficientes na fórmula - você pode produzir uma variedade de curvas de atenuação fazendo ajustes simples nelas. Você pode definir Atenuação1 como 1,0 para criar uma luz que não atenua, mas ainda é limitada pelo intervalo, ou pode experimentar valores diferentes para obter vários efeitos de atenuação.

A atenuação na faixa máxima da luz não é 0,0. Para evitar que as luzes apareçam repentinamente quando estão no intervalo de luz, um aplicativo pode aumentar o alcance da luz. Ou o aplicativo pode configurar constantes de atenuação para que o fator de atenuação esteja próximo de 0,0 na faixa de luz. O valor de atenuação é multiplicado pelos componentes vermelho, verde e azul da cor da luz para dimensionar a intensidade da luz como um fator da distância que a luz percorre até um vértice.

Fator de destaque

A equação a seguir especifica o fator de destaque.

Equação do fator Spotlight

Parâmetro Valor padrão Type Descrição Intervalo
Rhoeu N/D Ponto flutuante cosseno (ângulo) para holofote i N/D
phi i 0,0 Ponto flutuante Ângulo de penumbra do holofote i em radianos [i, pi)
ThetaI 0,0 Ponto flutuante Ângulo de umbra do holofote i em radianos [0, pi)
Queda 0,0 Ponto flutuante Fator de queda (-infinito, +infinito)

 

Onde:

rho = norm(Ldcs).norma(Ldir)

e:

Parâmetro Valor padrão Type Descrição
Ldcs N/D Vetor 3D com valores de ponto flutuante x, y e z O negativo da direção da luz no espaço da câmera
Ldir N/D Vetor 3D com valores de ponto flutuante x, y e z Vetor de direção da posição do vértice para a posição da luz

 

Depois de calcular a atenuação da luz, para calcular os componentes difusos e especulares do vértice, o Direct3D também considera os efeitos de destaque, se aplicável, o ângulo que a luz reflete de uma superfície e a refletância do material atual. Em Tipos de luz, consulte "Holofote".

Matemática de iluminação