次の方法で共有


遠隔拡散光の効果

遠隔拡散照明効果を使用して、光源が遠距離 (太陽やオーバーヘッド ライトなど) から来ているように見え、光がすべての方向に散らばっている非反射面のように見えるイメージを作成します。 この効果では、アルファ チャネルを高さマップとして使用し、遠くの光源でイメージを点灯させます。

出力ビットマップの色は、イメージの明るい色、明るい位置、およびサーフェス ジオメトリの結果です。 拡散照明を使用した各ピクセルのアルファ チャネル出力は常に 1.0 です。

この効果の CLSID はCLSID_D2D1DistantDiffuse。

画像の例

次の例は、遠隔拡散照明効果の入力イメージと出力イメージを示しています。

effect example screenshot the input and output images of the distant diffuse lighting effect.

Effect プロパティ

表示名とインデックス列挙 説明
アジマス
D2D1_DISTANTDIFFUSE_PROP_AZIMUTH
カウンター クロック方向の X 軸に対する XY 平面内の光源の方向角度。 単位は度単位で、0 ~ 360 度にする必要があります。
型は FLOAT です。
既定値は 0.0f です。
Elevation
D2D1_DISTANTDIFFUSE_PROP_ELEVATION
カウンター クロック方向の Y 軸に対する YZ 平面内の光源の方向角度。 単位は度単位で、0 ~ 360 度にする必要があります。
型は FLOAT です。
既定値は 0.0f です。
DiffuseConstant
D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT
拡散反射と着信光の量の比率。 このプロパティは 0 から 10,000 の間である必要があり、単位なしです。
型は FLOAT です。
既定値は 1.0f です。
SurfaceScale
D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE
Z 方向のスケール 係数。 サーフェス スケールは単位なしであり、0 ~ 10,000 の間である必要があります。
型は FLOAT です。
既定値は 1.0f です。
Color
D2D1_DISTANTDIFFUSE_PROP_COLOR
着信ライトの色。 このプロパティは、D2D1_VECTOR_3F (R、G、B) として公開され、LR、LG、LB の計算に使用されます。
型はD2D1_VECTOR_3F。
既定値は {1.0f、1.0f、1.0f} です。
KernelUnitLength
D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH
X 方向と Y 方向にサーフェス法線を生成するために使用される Sobel カーネル内の要素のサイズ。 このプロパティは、Sobel グラデーションの dx 値と dy 値にマップされます。 このプロパティはD2D1_VECTOR_2F (カーネル ユニット長 X、カーネル ユニット長 Y) であり、(デバイスに依存しないピクセル (DIP)/カーネル ユニット) で定義されています。 この効果では、二線補間を使用して、カーネル要素のサイズに合わせてビットマップをスケーリングします。
型がD2D1_VECTOR_2F。
既定値は {1.0f, 1.0f} です。
Scalemode
D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE
効果が使用する補間モードを使用して、イメージを対応するカーネル ユニットの長さにスケーリングします。 品質と速度の範囲には、6 つのスケール モードがあります。
型がD2D1_DISTANTDIFFUSE_SCALE_MODE。
既定値は D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR です。

スケール モード

列挙 説明
D2D1_DISTANTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR 最も近い単一点をサンプリングし、その点を使用します。 このモードでは処理時間は短くなりますが、最も低品質の画像が出力されます。
D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR 4 点サンプルと線形補間を使用します。 このモードでは、最も近い近隣ノードよりも高品質の画像が出力されます。
D2D1_DISTANTDIFFUSE_SCALE_MODE_CUBIC 補間に 16 個のサンプル立方カーネルを使用します。 このモードでは最も処理時間が長くなりますが、より高品質の画像が出力されます。
D2D1_DISTANTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR 1 つのピクセル内で 4 つの線形サンプルを使用して、優れたエッジアンチエイリアシングを行います。 このモードは、ピクセル数の少ない画像で少量のスケールダウンに適しています。
D2D1_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC 異方性フィルタリングを使用して、ビットマップの変換された形状に従ってパターンをサンプリングします。
D2D1_DISTANTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC 変換マトリックスにダウンスケールが関係している場合は、可変サイズの高品質キュービック カーネルを使用して、イメージの事前ダウンスケールを実行します。 次に、最終的な出力に 3 次補間モードを使用します。

注意

モードを選択しない場合、効果の既定値は D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR になります。

要件

要件
サポートされている最小のクライアント Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ]
サポートされている最小のサーバー Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ]
Header d2d1effects.h
ライブラリ d2d1.lib、dxguid.lib

ID2D1Effect