湍流效果

使用湍流效果基于 Perlin 噪声函数生成位图。

湍流效果没有输入图像。

此效果的 CLSID CLSID_D2D1Turbulence。

示例图

effect example screenshot showing the output of the turbulence effect.

湍流效应计算 Perlin 噪声函数的一个或多个八进制数的总和。 Perlin 干扰是伪随机函数,其值取决于频率、位置和种子值。 该效果使用这些公式之一生成 RGBA 值。

如果选择D2D1_TURBULENCE_NOISE_FRACTAL_SUM干扰模式,效果将使用此公式。

Screenshot that shows the turbulence function used to generate a bitmap.

如果选择D2D1_TURBULENCE_NOISE_TURBULENCE干扰模式,效果将使用此公式。

the turbulence function used to generate a bitmap.

注意

PerlinNoise 函数的范围为 [-1, 1]。

此效果输出预乘 alpha 中的像素值。

效果属性

显示名称和索引枚举 说明
Offset
D2D1_TURBULENCE_PROP_OFFSET
生成动荡输出的坐标。
用于生成 Perlin 干扰的算法依赖于位置,因此不同的偏移量会导致不同的输出。 此属性未绑定,单位在 DIP 中指定
[!注意]
偏移量与转换没有相同的效果,因为干扰函数输出是无限的,函数将环绕磁贴。

类型为D2D1_VECTOR_2F。
默认值为 {0.0f, 0.0f}。
大小
D2D1_TURBULENCE_PROP_SIZE
动荡输出的大小。
此属性未绑定,单位在 DIP 中指定

类型为D2D1_VECTOR_2F。
默认值为 {0.0f, 0.0f}。
BaseFrequency
D2D1_TURBULENCE_PROP_BASE_FREQUENCY
X 和 Y 方向的基频率。 此属性是浮点数,必须大于 0。 单位在 1/DIP 中指定。
基频率的值为 1 (1/DIP) 会导致 Perlin 噪音完成两个像素之间的整个周期。 这些像素的轻松内插会导致完全随机的像素,因为像素之间没有关联。
对于基本频率,Perlin 干扰函数每隔 10 个 DPS 重复一次,值为 0.1 (1/DIP) 。 这会导致像素与典型的湍流效果之间存在相关性。
类型为D2D1_VECTOR_2F。
默认值为 {0.01f, 0.01f}。
NumOctaves
D2D1_TURBULENCE_PROP_NUM_OCTAVES
干扰函数的八进制数。 此属性是 UINT32,必须大于 0。
类型为 UINT32。
默认值为 1。
Seed
D2D1_TURBULENCE_PROP_SEED
伪随机生成器的种子。 此属性未绑定。
类型为 UINT32。
默认值为 0。
噪音
D2D1_TURBULENCE_PROP_NOISE
湍流噪音模式。 此属性可以是 分形求和动荡。 指示是基于分形噪音还是“湍流”函数生成位图。 有关详细信息,请参阅 干扰模式
类型为D2D1_TURBULENCE_NOISE。
默认值为D2D1_TURBULENCE_NOISE_FRACTAL_SUM。
可缝合
D2D1_TURBULENCE_PROP_STITCHABLE
打开或关闭缝合。 调整基本频率,以便可以缝合输出位图。 如果要平铺流效应输出的多个副本,这非常有用。
  • 如此 可以使用图块效果) (平铺输出位图而不出现接缝。 调整基本频率,以便可以缝合输出位图。
  • False 不调整基本频率,因此,如果平铺位图,则图块之间可能会出现接缝。

类型为 BOOL。
默认值是 FALSE。

干扰模式

枚举 描述
D2D1_TURBULENCE_NOISE_FRACTAL_SUM 计算八进制数的总和,将输出范围从 [-1, 1] 移到 [0, 1]。
D2D1_TURBULENCE_NOISE_TURBULENCE 计算每个八进制值的绝对值之和。

注意

两种模式均不包含输出值的显式固定。

输出位图

此效果生成逻辑上无限大小的位图。

要求

要求
最低受支持的客户端 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用|Windows Microsoft Store应用]
最低受支持的服务器 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用|Windows Microsoft Store应用]
标头 d2d1effects.h
d2d1.lib、dxguid.lib

ID2D1Effect