湍流效果
使用湍流效果生成基于 Perlin 噪声函数的位图。
湍流效果没有输入图像。
此效果的 CLSID 是CLSID_D2D1Turbulence。
示例图
“湍流”效果计算 Perlin 噪声函数的一个或多个八度数之和。 Perlin 噪声是一个伪随机函数,其值取决于频率、位置和种子值。 该效果使用以下公式之一生成 RGBA 值。
如果选择D2D1_TURBULENCE_NOISE_FRACTAL_SUM噪音模式,则效果将使用此公式。
如果选择D2D1_TURBULENCE_NOISE_TURBULENCE噪音模式,则效果将使用此公式。
备注
函数 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 噪声函数为 0.1 (1/DRP) 基频,每隔 10 个 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 |
打开或关闭缝合。 调整基本频率,以便可以拼合输出位图。 如果要平铺扰流效果输出的多个副本,这非常有用。
类型为 BOOL。 默认值是 FALSE。 |
噪音模式
枚举 | 描述 |
---|---|
D2D1_TURBULENCE_NOISE_FRACTAL_SUM | 计算八度数的总和,将输出范围从 [-1, 1] 移动到 [0, 1]。 |
D2D1_TURBULENCE_NOISE_TURBULENCE | 计算每个 octave 的绝对值之和。 |
备注
两种模式均不包含输出值的显式固定。
输出位图
此效果生成逻辑上无限大小的位图。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |Windows 应用商店应用] |
最低受支持的服务器 | 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |Windows 应用商店应用] |
标头 | d2d1effects.h |
库 | d2d1.lib、dxguid.lib |