Partilhar via


Fórmulas de névoa (Direct3D 9)

Os aplicativos C++ podem controlar como a névoa afeta a cor dos objetos em uma cena, alterando como o Microsoft Direct3D calcula os efeitos de névoa à distância. O D3DFOGMODE tipo enumerado contém membros que identificam as três fórmulas de névoa. Todas as fórmulas calculam um fator de névoa em função da distância, dados os parâmetros que seu aplicativo define.

Neblina linear

Isto é definido com a seguinte equação D3DFOG_LINEAR.

equação da névoa linear direct3d

em que

  • Start é a distância a que os efeitos de nevoeiro começam.
  • fim é a distância a que os efeitos do nevoeiro já não aumentam.
  • d representa a profundidade, ou a distância do ponto de vista. Para névoa baseada em alcance, o valor de d é a distância entre a posição da câmera e um vértice. Para névoa não baseada em alcance, o valor de d é o valor absoluto da coordenada Z no espaço da câmera.

Neblina Exponencial

Fórmulas lineares e exponenciais são suportadas para névoa de pixel e névoa de vértice.

Isto é definido com a seguinte equação D3DFOG_EXP.

equação do de névoa exponencial direct3d

em que

  • e é a base dos logaritmos naturais (aproximadamente 2,71828).
  • densidade é uma densidade de névoa arbitrária que pode variar de 0,0 a 1,0.
  • d representa a profundidade, ou a distância do ponto de vista, como dito anteriormente.

Isto é definido com a seguinte equação D3DFOG_EXP2.

equação do de névoa exponencial Direct3D 2

em que

  • e é a base dos logaritmos naturais, como dito acima.
  • densidade é uma densidade de névoa arbitrária que pode variar de 0,0 a 1,0 como dito acima.
  • d representa a profundidade, ou a distância do ponto de vista, como dito acima.

Observação

O sistema armazena o fator de névoa no componente alfa da cor especular para um vértice. Se seu aplicativo executa sua própria transformação e iluminação, você pode inserir valores de fator de neblina manualmente, a serem aplicados pelo sistema durante a renderização.

 

O gráfico a seguir mostra essas fórmulas, usando valores comuns como nos parâmetros da fórmula.

gráfico das fórmulas de névoa ao longo da distância e quantidade de cor

D3DFOG_LINEAR é 1.0 no início e 0.0 no final. Não é medido em relação aos planos próximos ou distantes.

Quando o Direct3D calcula os efeitos de névoa, ele usa o fator de névoa de uma das equações anteriores na equação de mistura a seguir.

equação de efeitos de névoa para Direct3D

Esta fórmula escala efetivamente a cor do polígono C atual pelo fator de névoa f, e adiciona o produto à cor de névoa C, dimensionada pelo inverso bitwise do fator de névoa. O valor de cor resultante é uma mistura da cor da névoa e da cor original, como um fator de distância. A fórmula aplica-se a todos os dispositivos suportados no Microsoft DirectX 7.0 e posterior. Para o dispositivo de rampa legado, o fator de neblina escala os componentes de cor difusos e especulares, fixados à faixa de 0,0 e 1,0, inclusive. O fator nevoeiro normalmente começa em 1,0 para o plano próximo e diminui para 0,0 no plano distante.

Tipos de névoa