动荡效果
使用动荡效果基于 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 |
打开或关闭缝合。 调整基频率,以便可以缝合输出位图。 如果要平铺动荡效果输出的多个副本,这非常有用。
类型为 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 |