动荡效果

使用动荡效果基于 Perlin 干扰函数生成位图。

动荡效果没有输入图像。

此效果的 CLSID CLSID_D2D1Turbulence。

示例图像

显示动荡效果输出的 效果示例屏幕截图。

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

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

显示用于生成位图的动荡函数的屏幕截图。

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

用于生成位图的动荡函数。

注意

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

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

效果属性

显示名称和索引枚举 描述
抵消
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 噪音完成两个像素之间的整个周期。 这些像素的轻松内插会导致完全随机的像素,因为像素之间没有关联。
基频的值为 0.1(1/DIP),Perlin 噪声函数每 10 个 10 个 IOPS 重复一次。 这会导致像素和典型的动荡效果之间存在相关性。
类型为D2D1_VECTOR_2F。
默认值为 {0.01f, 0.01f}。
NumOctaves
D2D1_TURBULENCE_PROP_NUM_OCTAVES
干扰函数的八进制数。 此属性是 UINT32,必须大于 0。
类型为 UINT32。
默认值为 1。
种子
D2D1_TURBULENCE_PROP_SEED
伪随机生成器的种子。 此属性未绑定。
类型为 UINT32。
默认值为 0。
噪声
D2D1_TURBULENCE_PROP_NOISE
动荡噪音模式。 此属性可以是 分形和,也可以是 的动荡。 指示是基于 Fractal 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 应用商店应用]
支持的最低服务器 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |Windows 应用商店应用]
页眉 d2d1effects.h
图书馆 d2d1.lib、dxguid.lib

ID2D1Effect