Beleuchtungseffekt „Entfernt-Diffus“

Verwenden Sie den weit entfernten diffusen Beleuchtungseffekt, um ein Bild zu erstellen, das eine nicht reflektierende Oberfläche zu sein scheint, bei der die Lichtquelle aus einer großen Entfernung (wie die Sonnen- oder Oberlichter) zu stammen scheint und das Licht in alle Richtungen verteilt ist. Dieser Effekt verwendet den Alphakanal als Höhenkarte und leuchtet das Bild mit einer entfernten Lichtquelle.

Die Farbe der Ausgabebitmap ist das Ergebnis von Lichtfarbe, Lichtposition und Oberflächengeometrie des Bilds. Die Alphakanalausgabe für jedes Pixel mit diffuser Beleuchtung ist immer 1,0.

Die CLSID für diesen Effekt ist CLSID _ D2D1DistantDiffuse.

Beispielbild

Das hier gezeigte Beispiel zeigt die Ein- und Ausgabebilder des entfernten diffusen Beleuchtungseffekts.

Effect-Beispiel-Screenshot der Ein- und Ausgabebilder des entfernten diffusen Beleuchtungseffekts.

Effect-Eigenschaften

Anzeigename und Indexenumeration BESCHREIBUNG
Azimut
D2D1 _ ENTFERNTDIFFUSE _ PROP _ AZI WIE
Der Richtungswinkel der Lichtquelle in der XY-Ebene relativ zur X-Achse in der Zählertaktrichtung. Die Einheiten liegen in Grad und müssen zwischen 0 und 360 Grad liegen.
Der Typ ist FLOAT.
Der Standardwert ist 0,0f.
Elevation
D2D1 _ ENTFERNTDIFFUSE _ PROP _ ELEVATION
Der Richtungswinkel der Lichtquelle in der YZ-Ebene relativ zur Y-Achse in der Zählertaktrichtung. Die Einheiten liegen in Grad und müssen zwischen 0 und 360 Grad liegen.
Der Typ ist FLOAT.
Der Standardwert ist 0,0f.
DiffuseConstant
D2D1 _ ENTFERNTDIFFUSE _ PROP DIFFUSE _ _ CONSTANT
Das Verhältnis von diffuser Reflektion zur Menge des eingehenden Lichts. Diese Eigenschaft muss zwischen 0 und 10.000 liegen und ist komponentenlos.
Der Typ ist FLOAT.
Der Standardwert ist 1,0f.
SurfaceScale
D2D1 _ ENTFERNTDIFFUSE _ PROP SURFACE _ _ SCALE
Der Skalierungsfaktor in Z-Richtung. Die Oberflächenskala ist einheitslos und muss zwischen 0 und 10.000 liegen.
Der Typ ist FLOAT.
Der Standardwert ist 1,0f.
Color
D2D1 _ ENTFERNTDIFFUSE _ PROP _ COLOR
Die Farbe des eingehenden Lichts. Diese Eigenschaft wird als D2D1 _ VECTOR _ 3F (R, G, B)verfügbar gemacht und zum Berechnen von L R, L G, LB verwendet.
Der Typ ist D2D1 _ VECTOR _ 3F.
Der Standardwert ist {1,0f, 1,0f, 1,0f}.
KernelUnitLength
D2D1 _ ENTFERNTDIFFUSE _ PROP KERNEL UNIT _ _ _ LENGTH
Die Größe eines Elements im Sobel-Kernel, das zum Generieren der Oberflächennormale in X- und Y-Richtung verwendet wird. Diese Eigenschaft wird den Dx- und Dy-Werten im Sobel-Farbverlauf zu. Diese Eigenschaft ist ein D2D1 _ VECTOR _ 2F (Kernel Unit Length X, Kernel Unit Length Y) und wird in (geräteunabhängige Pixel (DIPs)/Kernel Unit) definiert. Der Effekt verwendet die bilineare Interpolation, um die Bitmap so zu skalieren, dass sie mit der Größe der Kernelelemente übereinstimmen kann.
Der Typ ist D2D1 _ VECTOR _ 2F.
Der Standardwert ist {1,0f, 1,0f}.
Scalemode
D2D1, _ ENTFERNTDIFFUSE _ PROP _ SCALE _ MODE
Der Interpolationsmodus, den der Effekt verwendet, um das Bild auf die entsprechende Länge der Kerneleinheit zu skalieren. Es gibt sechs Skalierungsmodi, die in Qualität und Geschwindigkeit reichen.
Der Typ ist D2D1 _ DISTANTDIFFUSE _ SCALE _ MODE.
Der Standardwert ist D2D1 _ DISTANTDIFFUSE _ SCALE _ MODE _ LINEAR.

Skalierungsmodi

Enumeration Beschreibung
D2D1 _ ENTFERNTDIFFUSE _ SCALE MODE NEAREST _ _ _ NEIGHBOR Stichprobenentnahme für den nächstgelegenen einzelnen Punkt und Verwendung dieses Punkts. Dieser Modus verbraucht weniger Verarbeitungszeit, gibt jedoch das Image mit der niedrigsten Qualität aus.
D2D1 _ ENTFERNTDIFFUSE _ SCALE MODE _ _ LINEAR Verwendet eine Stichprobe mit vier Punkt und eine lineare Interpolation. Dieser Modus gibt ein Bild mit höherer Qualität als der nächste Nachbar aus.
D2D1 _ ENTFERNTDIFFUSE _ SCALE MODE _ _ KUBISCH Verwendet einen kubischen 16-Beispielkernel für die Interpolation. Dieser Modus verwendet die meiste Verarbeitungszeit, gibt jedoch ein Bild mit höherer Qualität aus.
D2D1 _ ENTFERNTDIFFUSE _ SCALE MODE MULTI SAMPLE _ _ _ _ LINEAR Verwendet vier lineare Stichproben innerhalb eines einzelnen Pixels für ein gutes Edge-Antialiasing. Dieser Modus ist gut für das Herunterskalieren um kleine Mengen auf Bildern mit wenigen Pixeln.
D2D1 _ ENTFERNTDIFFUSE _ SCALE MODE _ _ ANISOTROPIC Verwendet die anisotrope Filterung, um ein Muster entsprechend der transformierten Form der Bitmap zu beproben.
D2D1 _ ENTFERNTDIFFUSE _ SCALE MODE HIGH QUALITY _ _ _ _ KUBISCH Verwendet einen kubischen Kernel mit hoher Qualität in variabler Größe, um ein Vorabskalieren des Images durchzuführen, wenn eine Downskalierung an der Transformationsmatrix beteiligt ist. Verwendet dann den kubischen Interpolationsmodus für die endgültige Ausgabe.

Hinweis

Wenn Sie keinen Modus auswählen, wird der Effekt standardmäßig auf D2D1 _ DISTANTDIFFUSE _ SCALE MODE LINEAR _ _ festgelegt.

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 und Plattformupdate für Windows 7 [ Desktop-Apps | Windows Store Apps]
Unterstützte Mindestversion (Server) Windows 8 und Plattformupdate für Windows 7 [ Desktop-Apps | Windows Store Apps]
Header d2d1effects.h
Bibliothek d2d1.lib, dxguid.lib

ID2D1Effect