次の方法で共有


乱気流効果

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

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

この効果の CLSID はCLSID_D2D1Turbulence。

画像の例

乱気流効果の出力を示す効果の例のスクリーンショット。

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

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

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

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

ビットマップの生成に使用される乱気流関数。

注意

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

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

Effect プロパティ

表示名とインデックス列挙 説明
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 方向の基本周波数。 このプロパティは 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 です。
Seed
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 8 および Windows 7 用プラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ]
サポートされている最小のサーバー Windows 8 および Windows 7 用プラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ]
ヘッダー d2d1effects.h
ライブラリ d2d1.lib、dxguid.lib

ID2D1Effect