Partilhar via


Efeito turbulência

Use o efeito de turbulência para gerar um bitmap com base na função de ruído Perlin.

O efeito de turbulência não tem imagem de entrada.

O CLSID para este efeito é CLSID_D2D1Turbulence.

Imagem de exemplo

exemplo de efeito captura de tela mostrando a saída do efeito turbulência.

O efeito Turbulência calcula a soma de uma ou mais oitavas da função de ruído Perlin. O ruído de Perlin é uma função pseudoaleatória cujo valor depende da frequência, posição e valor da semente. O efeito gera os valores RGBA usando uma dessas equações.

Se você selecionar o modo de ruído D2D1_TURBULENCE_NOISE_FRACTAL_SUM, o efeito usará esta equação.

Captura de tela que mostra a função de turbulência usada para gerar um bitmap.

Se você selecionar o modo de ruído D2D1_TURBULENCE_NOISE_TURBULENCE, o efeito usará esta equação.

a função de turbulência usada para gerar um bitmap.

Observação

A função PerlinNoise tem um intervalo de [-1, 1].

Este efeito produz valores de pixel em alfa pré-multiplicado.

Propriedades do efeito

Nome para exibição e enumeração de índice Descrição
Deslocamento
D2D1_TURBULENCE_PROP_OFFSET
As coordenadas onde a saída de turbulência é gerada.
O algoritmo usado para gerar o ruído Perlin é dependente da posição, portanto, um deslocamento diferente resulta em uma saída diferente. Esta propriedade não é limitada e as unidades são especificadas em DIPs
Nota: O deslocamento não tem o mesmo efeito que uma tradução porque a saída da função ruído é infinita e a função irá envolver o bloco.
O tipo é D2D1_VETOR_2F.
O valor padrão é {0.0f, 0.0f}.
Tamanho
D2D1_TURBULENCE_PROP_SIZE
O tamanho da saída de turbulência.
Esta propriedade não é limitada e as unidades são especificadas em DIPs

O tipo é D2D1_VETOR_2F.
O valor padrão é {0.0f, 0.0f}.
BaseFrequency
D2D1_TURBULENCE_PROP_BASE_FREQUENCY
As frequências de base na direção X e Y. Esta propriedade é um flutuador e deve ser maior que 0. As unidades são especificadas em 1/DIPs.
Um valor de 1 (1/DIPs) para a frequência base resulta no ruído Perlin completando um ciclo inteiro entre dois pixels. A interpolação fácil para esses pixels resulta em pixels completamente aleatórios, uma vez que não há correlação entre os pixels.
Um valor de 0,1(1/DIPs) para a frequência base, a função de ruído Perlin repete-se a cada 10 DIPs. Isso resulta em correlação entre pixels e o efeito de turbulência típico é visível.
O tipo é D2D1_VETOR_2F.
O valor padrão é {0.01f, 0.01f}.
NumOctaves
D2D1_TURBULENCE_PROP_NUM_OCTAVES
O número de oitavas para a função de ruído. Esta propriedade é um UINT32 e deve ser maior que 0.
O tipo é UINT32.
O valor padrão é 1.
Sementes
D2D1_TURBULENCE_PROP_SEED
A semente para o gerador pseudo aleatório. Esta propriedade é ilimitada.
O tipo é UINT32.
O valor padrão é 0.
Ruído
D2D1_TURBULENCE_PROP_NOISE
O modo de ruído de turbulência. Esta propriedade pode ser soma fractal ou turbulência. Indica se um bitmap deve ser gerado com base em Ruído Fractal ou na função Turbulência. Consulte Modos de ruído para obter mais informações.
O tipo é D2D1_TURBULENCE_NOISE.
O valor padrão é D2D1_TURBULENCE_NOISE_FRACTAL_SUM.
Costurável
D2D1_TURBULENCE_PROP_STITCHABLE
Ativa ou desliga a costura. A frequência base é ajustada para que o bitmap de saída possa ser costurado. Isso é útil se você quiser colocar lado a lado várias cópias da saída do efeito de turbulência.
  • True O bitmap de saída pode ser lado a lado (usando o efeito de bloco) sem a aparência de costuras. A frequência base é ajustada para que o bitmap de saída possa ser costurado.
  • Falso A frequência base não é ajustada, portanto, costuras podem aparecer entre blocos se o bitmap estiver lado a lado.

O tipo é BOOL.
O valor padrão é FALSE.

Modos de ruído

Enumeração Descrição
D2D1_TURBULENCE_NOISE_FRACTAL_SUM Calcula uma soma das oitavas, deslocando o intervalo de saída de [-1, 1] para [0, 1].
D2D1_TURBULENCE_NOISE_TURBULENCE Calcula a soma do valor absoluto de cada oitava.

Observação

Nenhum dos modos contém um grampo explícito dos valores de saída.

Bitmap de saída

Esse efeito gera um bitmap de tamanho logicamente infinito.

Requerimentos

Exigência Valor
Cliente mínimo suportado Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows]
Servidor mínimo suportado Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows]
Cabeçalho d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect