次の方法で共有


乱れ効果

乱れ効果を使用して、Perlin ノイズ関数に基づいてビットマップを生成します。

乱れ効果には入力画像がありません。

この効果の CLSID はCLSID_D2D1Turbulence。

画像の例

効果の例のスクリーンショット。乱れ効果の出力が示されています。

乱れ効果は、Perlin ノイズ関数の 1 つ以上のオクターブの合計を計算します。 Perlin ノイズは、周波数、位置、シード値に依存する値を持つ擬似ランダム関数です。 効果は、これらの式のいずれかを使用して RGBA 値を生成します。

D2D1_TURBULENCE_NOISE_FRACTAL_SUMノイズ モードを選択した場合、効果はこの式を使用します。

ビットマップの生成に使用される乱れ関数を示すスクリーンショット。

D2D1_TURBULENCE_NOISE_TURBULENCEノイズモードを選択すると、エフェクトはこの式を使用します。

ビットマップの生成に使用する乱れ関数を します。

手記

PerlinNoise 関数の範囲は [-1, 1] です。

この効果は、事前乗算されたアルファのピクセル値を出力します。

Effect プロパティ

表示名とインデックス列挙 形容
相殺
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 方向の基本周波数。 このプロパティは float であり、0 より大きくする必要があります。 単位は 1/DIP で指定されます。
基本周波数の値が 1 (1/DIP) の場合、Perlin ノイズが 2 ピクセル間のサイクル全体を完了します。 これらのピクセルの簡単な補間では、ピクセル間に相関関係がないため、完全にランダムなピクセルになります。
基本周波数に対して 0.1(1/DIP) の値を指定すると、Perlin ノイズ関数は 10 DIP ごとに繰り返されます。 これにより、ピクセル間の相関関係が生じ、一般的な乱れ効果が表示されます。
型は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
乱れノイズ モード。 このプロパティは、 または の乱れすることができます。 フラクタル ノイズまたは乱れ関数に基づいてビットマップを生成するかどうかを示します。 詳細については、「ノイズ モードの」を参照してください。
型はD2D1_TURBULENCE_NOISE。
既定値は D2D1_TURBULENCE_NOISE_FRACTAL_SUM です。
ステッチ可能
D2D1_TURBULENCE_PROP_STITCHABLE
ステッチのオン/オフを切り替えます。 基本周波数は、出力ビットマップをステッチできるように調整されます。 これは、乱れ効果の出力の複数のコピーをタイル化する場合に便利です。
  • True 出力ビットマップは、継ぎ目の外観なしで (タイル効果を使用して) 並べて表示できます。 基本周波数は、出力ビットマップをステッチできるように調整されます。
  • 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