Partilhar via


Fórmulas de neblina (Direct3D 9)

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

Neblina Linear

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

equação de neblina linear direct3d

onde

  • start é a distância na qual os efeitos de neblina começam.
  • end é a distância na qual os efeitos de neblina não aumentam mais.
  • d representa a profundidade ou a distância do ponto de vista. Para a neblina baseada em intervalo, o valor de d é a distância entre a posição da câmera e um vértice. Para neblina não baseada em intervalo, o valor de d é o valor absoluto da coordenada Z no espaço da câmera.

Neblina Exponencial

Fórmulas lineares e exponencial têm suporte para neblina de pixel e neblina de vértice.

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

equação de neblina exponencial direct3d

onde

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

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

equação de neblina exponencial 2 direct3d

onde

  • e é a base de logaritmos naturais, conforme indicado acima.
  • densidade é uma densidade de neblina arbitrária que pode variar de 0,0 a 1,0, conforme indicado acima.
  • d representa a profundidade ou a distância do ponto de vista, conforme indicado acima.

Observação

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

 

O grafo a seguir mostra essas fórmulas, usando valores comuns como nos parâmetros de fórmula.

grafo das fórmulas de neblina sobre a distância e a quantidade de cor

D3DFOG_LINEAR é 1,0 no início e 0,0 no final. Não é medido em relação aos aviões próximos ou distantes.

Quando o Direct3D calcula os efeitos de neblina, ele usa o fator de neblina de uma das equações anteriores na equação de mesclagem a seguir.

equação de efeitos de neblina para direct3d

Essa fórmula escala efetivamente a cor do polígono atual C pelo fator de neblina f e adiciona o produto à cor de neblina C, dimensionada pelo inverso bit a bit do fator de neblina. O valor de cor resultante é uma mistura da cor da neblina e da cor original, como um fator de distância. A fórmula se aplica a todos os dispositivos com suporte no Microsoft DirectX 7.0 e posterior. Para o dispositivo de rampa herdado, o fator de neblina dimensiona os componentes de cor difusa e especular, fixados ao intervalo de 0,0 e 1,0, inclusive. O fator de neblina normalmente começa em 1,0 para o plano próximo e diminui para 0,0 no plano distante.

Tipos de neblina