Compartilhar via


Efeito de 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 esse efeito é CLSID_D2D1Turbulence.

Imagem de exemplo

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

O efeito Turbulência calcula a soma de uma ou mais oitavas da função de ruído Perlin. O ruído perlin é uma função pseudo-aleatória cujo valor depende da frequência, da posição e do 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á essa 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á essa equação.

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

Observação

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

Esse efeito gera valores de pixel em alfa pré-multiplicado.

Propriedades do efeito

Nome de exibição e enumeração de índice Descrição
Deslocamento
D2D1_TURBULENCE_PROP_OFFSET
As coordenadas em que a saída de turbulência é gerada.
O algoritmo usado para gerar o ruído Perlin depende da posição, portanto, um deslocamento diferente resulta em uma saída diferente. Essa 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 de ruído é infinita e a função será encapsulada ao redor do bloco.
O tipo é D2D1_VECTOR_2F.
O valor padrão é {0.0f, 0.0f}.
Tamanho
D2D1_TURBULENCE_PROP_SIZE
O tamanho da saída da turbulência.
Essa propriedade não é limitada e as unidades são especificadas em DIPs

O tipo é D2D1_VECTOR_2F.
O valor padrão é {0.0f, 0.0f}.
BaseFrequency
D2D1_TURBULENCE_PROP_BASE_FREQUENCY
As frequências base na direção X e Y. Essa propriedade é um float 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 concluindo um ciclo inteiro entre dois pixels. A interpolação de facilidade para esses pixels resulta em pixels completamente aleatórios, pois 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 se repete a cada 10 DIPs. Isso resulta em correlação entre pixels e o efeito de turbulência típico é visível.
O tipo é D2D1_VECTOR_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. Essa propriedade é um UINT32 e deve ser maior que 0.
O tipo é UINT32.
O valor padrão é 1.
Seed
D2D1_TURBULENCE_PROP_SEED
A semente para o gerador pseudo aleatório. Essa propriedade não é limitada.
O tipo é UINT32.
O valor padrão é 0.
Ruído
D2D1_TURBULENCE_PROP_NOISE
O modo de ruído de turbulência. Essa propriedade pode ser soma fractal ou turbulência. Indica se é necessário gerar um bitmap com base no 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
Liga ou desativa a costura. A frequência base é ajustada para que o bitmap de saída possa ser costurado. Isso será útil se você quiser colocar em bloco 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 das costuras. A frequência base é ajustada para que o bitmap de saída possa ser costurado.
  • False A frequência base não é ajustada, portanto, as 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 octeções, deslocando o intervalo de saída de [-1, 1], para [0, 1].
D2D1_TURBULENCE_NOISE_TURBULENCE Calcula uma soma do valor absoluto de cada octeto.

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.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 e Platform Update para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store]
Servidor mínimo com suporte Windows 8 e Platform Update para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store]
Cabeçalho d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect