Partilhar via


Neblina (Direct3D 9)

Adicionar neblina a uma cena 3D pode aumentar o realismo, fornecer ambiente ou definir um humor, e artefatos obscuros às vezes causados quando a geometria distante entra em cena. O Direct3D dá suporte a dois modelos de neblina, neblina de pixel e neblina de vértice, cada um com seus próprios recursos e interface de programação.

Essencialmente, a neblina é implementada misturando a cor dos objetos em uma cena com uma cor de neblina escolhida com base na profundidade de um objeto em uma cena ou sua distância do ponto de vista. À medida que os objetos ficam mais distantes, sua cor original se mistura cada vez mais com a cor de neblina escolhida, criando a ilusão de que o objeto está sendo cada vez mais obscurecido por pequenas partículas flutuando na cena. A ilustração a seguir mostra uma cena renderizada sem neblina e uma cena semelhante renderizada com neblina habilitada.

ilustração da mesma cena com e sem neblina

Nesta ilustração, a cena à esquerda tem um horizonte claro, além do qual nenhum cenário é visível, mesmo que seja visível no mundo real. A cena à direita obscurece o horizonte usando uma cor de neblina idêntica à cor da tela de fundo, fazendo com que os polígonos pareçam desaparecer à distância. Combinando efeitos de neblina discretos com design de cena criativo, você pode adicionar humor e suavizar a cor dos objetos em uma cena.

O Direct3D fornece duas maneiras de adicionar neblina a uma cena: neblina de pixel e neblina de vértice, nomeadas para como os efeitos de neblina são aplicados. Para obter detalhes, consulte Neblina de Pixel (Direct3D 9) e Neblina de Vértice (Direct3D 9). Em suma, a neblina de pixels - também chamada de neblina de tabela - é implementada no driver do dispositivo e a neblina de vértice é implementada no mecanismo de iluminação Direct3D. Um aplicativo pode implementar neblina com um sombreador de vértice e neblina de pixel simultaneamente, se desejado.

Observação

Independentemente de você usar neblina de pixel ou vértice, seu aplicativo deve fornecer uma matriz de projeção compatível para garantir que os efeitos de neblina sejam aplicados corretamente. Essa restrição se aplica até mesmo a aplicativos que não usam o mecanismo de iluminação e transformação Direct3D. Para obter detalhes adicionais sobre como você pode fornecer uma matriz apropriada, consulte Transformação de projeção (Direct3D 9).

 

Os tópicos a seguir apresentam neblina e apresentam informações sobre como usar vários recursos de neblina em aplicativos Direct3D.

A mesclagem de neblina é controlada por estados de renderização; ele não faz parte do pipeline de pixel programável.

Renderização do Direct3D