Compartilhar via


Fog

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

O conversor de bitmap é capaz de adicionar um valor neblina a cor de saída. Aplicativos geralmente usado esse efeito para obscurecer objetos perto o recorte até que ponto para que eles fazem não repentinamente aparecer em exibição quando eles cruzado limite desse plano.

Microsoft Direct3D Mobile ® oferece suporte a dois separar fogging modos, neblina vértice e neblina pixel. Cada modo calcula um valor neblina que é usado para misturar entre a cor calculado e a cor neblina. Você pode efeitos neblina controle com uma variedade de processar estados.

Você pode habilitar ou desativar neblina misturando por configuração o estado processar D3DMRS_FOGENABLE para ambos os TRUE ou FALSE, respectivamente. Quando Fog misturando está desativado, processamento pixel é executado apenas na entrada cor, qual é a soma da transmitir de textura e a cor especulares para o pixel. Quando Fog misturando está habilitado a entrada cor é outras com a cor neblina de acordo com o valor neblina no que pixel.

A cor neblina é controlado pelo estado de processar D3DMRS_FOGCOLOR. Defina esse estado processar serem valor cor ARGB 32 bit do neblina.

Você pode habilitar neblina misturando sem usar o vértice ou pixel neblina. Para tornar usar isso, você deve transmitir um valor neblina para cada vértice e, em seguida, implementar seus próprios algoritmos interpolação e misturando. O valor neblina é passado alfa especulares componente do vértice valor, onde um valor de 0xFF é não neblina e é um valor de 0 x 00 completo neblina (100 %).

Não é possível para um aplicativo para habilitar o vértice e pixel Fog simultaneamente. Se o aplicativo tenta isso, um erro de combinação de D3DMERR_DRIVERINVALIDCALL será definido.

Direct3D Mobile usa os valores na D3DMFOGMODE enumeração para identificar as equações neblina usadas em vários estados processar. Os dois tipos de suporte neblina todos a equação neblina na enumeração.

Fog vértice

Ao usar neblina vértice, a neblina misturando valor é calculada para cada vértice e, em seguida, interpolated entre o primitivo. Você pode habilitar vértice neblina por configuração um valor para o estado processar D3DMRS_FOGVERTEXMODE (consulte D3DMRENDERSTATETYPE).

Um driver indica que ele oferece suporte à neblina vértice, expondo o bit funcionalidade D3DMPRASTERCAPS_FOGVERTEX (consulte Valores D3DMPRASTERCAPS). Um driver que expõe D3DMPRASTERCAPS_FOGVERTEX sempre é capaz de neblina processamento com base no seguinte métodos:

  • Ele pode gerar coeficientes de interpolação linear durante transformação and Lighting e, em seguida, executar o real interpolação durante rasterization.
  • Ele pode usar alfa valores durante rasterization que foram calculada pelo algoritmo neblina do aplicativo e enviado para o driver em um formato vértice flexível (FVF).

Se um driver suporta as equações neblina ordem mais altas, ele indicará que suporte por expor os bits funcionalidade D3DMPRASTERCAPS_EXPFOG e D3DMPRASTERCAPS_EXP2FOG, como aplicável. Um driver não pode expor essas bits para superior-neblina ordem sem expor também D3DMPRASTERCAPS_FOGVERTEX porque isso faria implica que o driver é capaz de gerar os coeficientes interpolação em cada vértice mas incapaz de calcular os valores interpolated neblina durante rasterization.

Você pode usar o estado processar D3DMRS_RANGEFOGENABLE para controle se Mobile ® Direct3D Microsoft ® usa neblina intervalo-com base ou profundidade-com base. Com o método Range-based, neblina efeitos são calculados com base na distância de um objeto a partir de visualizador. Com o método depth-based, neblina efeitos são calculados com base em z de um objeto-coordenar em cena. No intervalo-com base em neblina, todos Fog trabalho métodos como de costume, exceto pelo fato de que eles usar intervalo em vez de profundidade nos cálculos.

Neblina intervalo-com base é o método visualmente preciso para cálculos neblina, mas é mais computationally dispendioso que neblina profundidade-com base. Neblina profundidade-com base é usada com freqüência, pois o comum disponibilidade de z-coordenar valores torna-conveniente fazer isso. A principal desvantagem do uso neblina profundidade-com base é que o nível de neblina para periférico objetos alterações como olho do visualizador altera direção. Nesses casos a distância entre o visualizador global e o objeto não alteração, mas a profundidade de cena do objeto existir, resultando em uma alteração na neblina nível.

Para neblina vértice computações de valores profundidade de D3DMRS_FOGSTART e D3DMRS_FOGEND são especificadas em espaço global.

Fog-pixel

Quando usar neblina pixel, a neblina misturando valor calculado para cada pixel. Você pode habilitar neblina pixel por configuração um valor para o estado processar D3DMRS_FOGTABLEMODE (consulte D3DMRENDERSTATETYPE).

Para cálculos neblina pixel os valores profundidade D3DMRS_FOGSTART e D3DMRS_FOGEND são especificados no dispositivo espaço (0,0, 1.0) ou espaço global. Dispositivo espaço é usado quando o sistema usa z para cálculos neblina (neblina profundidade-com base) e espaço global é usado quando o sistema está usando os olhos - relativo Fog (neblina w-neblina ou o intervalo-com base).

See Also

Concepts

Rasterization