ホーム › Graphics.DirectComposition › IDCompositionTurbulenceEffect
IDCompositionTurbulenceEffect
COM公式ドキュメント
turbulence エフェクトは、Perlin ノイズ関数に基づいてビットマップを生成するために使用します。turbulence エフェクトには入力画像がありません。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 4 HRESULT SetOffset(D2D_VECTOR_2F* offset)
turbulence の出力を生成する座標を設定します。
| offset | D2D_VECTOR_2F* | in | turbulence の出力を生成する座標です。 Perlin ノイズの生成に使用されるアルゴリズムは位置に依存するため、オフセットが異なると出力も異なります。この値に制限はなく、単位は DIP です。 メモ メモ ノイズ関数の出力は無限であり、関数はタイル内で折り返されるため、オフセットは平行移動と同じ効果にはなりません。
|
戻り値
vtbl 5 HRESULT SetBaseFrequency(D2D_VECTOR_2F* frequency)
X 方向および Y 方向の基本周波数を設定します。
| frequency | D2D_VECTOR_2F* | in | X 方向および Y 方向の基本周波数です。0 より大きい値である必要があります。単位は 1/DIP です。 基本周波数が 1 (1/DIP) の場合、Perlin ノイズは 2 ピクセルの間で 1 周期を完了します。これらのピクセルに対するイージング補間の結果、ピクセル間に相関がなくなり、完全にランダムなピクセルになります。 基本周波数が 0.1 (1/DIP) の場合、Perlin ノイズ関数は 10 DIP ごとに繰り返されます。この場合はピクセル間に相関が生じ、一般的な turbulence エフェクトが現れます。 |
戻り値
vtbl 6 HRESULT SetSize(D2D_VECTOR_2F* size)
turbulence の出力サイズを設定します。
| size | D2D_VECTOR_2F* | in | turbulence の出力サイズです。 |
戻り値
ノイズ関数のオクターブ数を設定します。
| numOctaves | DWORD | in | ノイズ関数のオクターブ数です。この値は 0 より大きい必要があります。 |
戻り値
疑似乱数生成器のシードを設定します。
| seed | DWORD | in | 疑似乱数生成器のシードです。この値に制限はありません。 |
戻り値
vtbl 9 HRESULT SetNoise(D2D1_TURBULENCE_NOISE noise)
turbulence のノイズモードを設定します。
| noise | D2D1_TURBULENCE_NOISE | in | turbulence のノイズモードです。フラクタルノイズと turbulence 関数のどちらに基づいてビットマップを生成するかを指定します。 |
戻り値
ステッチングの有効/無効を指定します。
| stitchable | BOOL | in | ステッチングの有効/無効を指定するブール値です。出力ビットマップをステッチできるように基本周波数が調整されます。 これは turbulence エフェクトの出力を複数枚タイル状に並べたい場合に便利です。 この値が TRUE の場合、出力ビットマップは継ぎ目を生じることなく (tile エフェクトを使用して) タイル配置でき、出力ビットマップをステッチできるように基本周波数が調整されます。 この値が FALSE の場合、基本周波数は調整されないため、ビットマップをタイル配置するとタイル間に継ぎ目が現れることがあります。 |
戻り値
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDCompositionTurbulenceEffect "{A6A55BDA-C09C-49F3-9193-A41922C89715}" #usecom global IDCompositionTurbulenceEffect IID_IDCompositionTurbulenceEffect "{}" #comfunc global IDCompositionTurbulenceEffect_SetOffset 4 var #comfunc global IDCompositionTurbulenceEffect_SetBaseFrequency 5 var #comfunc global IDCompositionTurbulenceEffect_SetSize 6 var #comfunc global IDCompositionTurbulenceEffect_SetNumOctaves 7 int #comfunc global IDCompositionTurbulenceEffect_SetSeed 8 int #comfunc global IDCompositionTurbulenceEffect_SetNoise 9 int #comfunc global IDCompositionTurbulenceEffect_SetStitchable 10 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IDCompositionTurbulenceEffect "{A6A55BDA-C09C-49F3-9193-A41922C89715}" #usecom global IDCompositionTurbulenceEffect IID_IDCompositionTurbulenceEffect "{}" #comfunc global IDCompositionTurbulenceEffect_SetOffset 4 sptr #comfunc global IDCompositionTurbulenceEffect_SetBaseFrequency 5 sptr #comfunc global IDCompositionTurbulenceEffect_SetSize 6 sptr #comfunc global IDCompositionTurbulenceEffect_SetNumOctaves 7 int #comfunc global IDCompositionTurbulenceEffect_SetSeed 8 int #comfunc global IDCompositionTurbulenceEffect_SetNoise 9 int #comfunc global IDCompositionTurbulenceEffect_SetStitchable 10 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。