Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użyj efektu oświetlenia rozproszonego typu spot, aby utworzyć obraz, który wydaje się być nieodświetlającą powierzchnią, w której źródło światła jest ograniczone do skierowanego stożka światła, a światło jest rozpraszane we wszystkich kierunkach. Ten efekt używa kanału alfa jako mapy wysokości i oświetla obraz źródłem światła punktowego.
Kolor mapy bitowej danych wyjściowych jest wynikiem koloru światła, położenia światła i geometrii powierzchni. Wyjście kanału alfa dla każdego piksela z oświetleniem rozproszonym jest zawsze 1.0.
Identyfikator CLSID dla tego efektu jest CLSID_D2D1SpotDiffuse.
- obraz przykładowy
- Właściwości efektu
- tryby skalowania
- Wymagania
- Tematy pokrewne
Przykładowy obraz
W tym przykładzie przedstawiono obrazy wejściowe i wyjściowe efektu oświetlenia rozproszonego typu spot.
Efekt oblicza końcowe wartości pikseli wyjściowych przy użyciu następujących równań:
Gdzie:
- kd = stała oświetlenia rozproszonego. Określony przez użytkownika.
= wektor jednostkowy normalny powierzchni, funkcja x i y.
= wektor jednostkowy wskazujący od powierzchni do światła.Lr, Lg, Lb = jasny kolor w składnikach RGB.
Właściwości efektu
| Nazwa wyświetlana i wyliczenie indeksu | Typ i wartość domyślna | Opis |
|---|---|---|
| PozycjaŚwiatła D2D1_SPOTDIFFUSE_PROP_LIGHT_POSITION |
D2D1_VECTOR_3F {0.0f, 0.0f, 0.0f} |
Położenie światła punktu źródła światła. Właściwość jest zdefiniowana jako D2D1_VECTOR_3F o współrzędnych (x, y, z). Jednostki są w pikselach niezależnych od urządzenia (DIPs) i są niezwiązane. |
| Wskaźniki D2D1_SPOTDIFFUSE_PROP_POINTS_AT |
D2D1_VECTOR_3F {0.0f, 0.0f, 0.0f} |
Gdzie koncentruje się światło punktowe. Właściwość jest widoczna jako D2D1_VECTOR_3F (x, y, z). Jednostki znajdują się w adresach IP, a wartości są niezwiązane. |
| Skupienie D2D1_SPOTDIFFUSE_PROP_FOCUS |
PŁYWAĆ 1.0f |
Fokus światła punktowego. Ta właściwość jest bezwymiarowa i jest zdefiniowana w zakresie od 0 do 200. |
| Ograniczenie kąta stożka D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE |
SPŁAWIK 90.0f |
Kąt stożka, który ogranicza obszar, w którym światło jest emitowane. Żadne światło nie jest rzutowane poza stożek. Kąt ograniczającego stożka jest kątem między osią światła punktowego (oś między właściwościami LightPosition a PointsAt) i stożka światła punktowego. Ta właściwość jest zdefiniowana w stopniach i musi należeć do zakresu od 0 do 90 stopni. |
| Stała dyfuzji D2D1_SPOTDIFFUSE_PROP_KONSTANTA_ROZPROSZENIA |
SPŁAWIK 1.0f |
Stosunek odbicia rozproszonego do ilości światła przychodzącego. Ta właściwość musi należeć do przedziału od 0 do 10 000 i nie ma jednostki. |
| SurfaceScale D2D1_SPOTDIFFUSE_PROP_SURFACE_SCALE |
SPŁAWIK 1.0f |
Współczynnik skalowania w kierunku Z. Skala powierzchni jest bezwymiarowa i musi mieścić się w zakresie od 0 do 10 000. |
| Kolor D2D1_SPOTDIFFUSE_PROP_COLOR |
D2D1_VECTOR_3F {1.0f, 1.0f, 1.0f} |
Kolor światła przychodzącego. Ta właściwość jest uwidoczniona jako wektor 3 (R, G, B) i używana do obliczania LR, LG, LB. |
| KernelUnitLength D2D1_SPOTDIFFUSE_PROP_KERNEL_UNIT_LENGTH |
D2D1_VECTOR_2F {1.0f, 1.0f} |
Rozmiar elementu w jądrze Sobel używany do generowania powierzchni normalnego w kierunku X i Y. Ta właściwość mapuje wartości dx i dy na gradient Sobel. Ta właściwość jest D2D1_VECTOR_2F (długość jednostki jądra X, długość jednostki jądra Y) i jest zdefiniowana w (DIPs/Kernel Unit). Efekt używa interpolacji dwuliniowej do skalowania mapy bitowej w celu dopasowania rozmiaru elementów jądra. |
| Tryb skalowania D2D1_SPOTDIFFUSE_PROP_SCALE_MODE |
D2D1_SPOTDIFFUSE_SCALE_MODE D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR |
Tryb interpolacji używany przez efekt do skalowania obrazu do odpowiedniej długości jednostki jądra. Istnieje sześć trybów skalowania, które wahają się w zakresie jakości i szybkości. Aby uzyskać więcej informacji, zobacz Tryby skalowania. |
Tryby skalowania
| Wyliczenie | Opis |
|---|---|
| D2D1_SPOTDIFFUSE_SKALA_TRYB_NAJBLIŻSZY_SĄSIAD | Próbkuje najbliższy pojedynczy punkt i używa tego punktu. Ten tryb używa mniej czasu przetwarzania, ale generuje obraz o najniższej jakości. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR | Używa próbki czterech punktów i interpolacji liniowej. Ten tryb generuje obraz o wyższej jakości niż najbliższy sąsiad. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_CUBIC | Używa 16-próbkowego jądra sześciennego do interpolacji. Ten tryb używa najbardziej czasu przetwarzania, ale generuje obraz o wyższej jakości. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR | Używa 4 próbek liniowych w jednym pikselu do dobrego antyaliasingu krawędzi. Ten tryb jest dobry do skalowania w dół o niewielkie wartości na obrazach o niewielkiej liczbie pikseli. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_ANIZOTROPOWY | Używa filtrowania anisotropowego do próbkowania wzorca zgodnie z przekształconym kształtem mapy bitowej. |
| D2D1_SPOTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC | Używa jądra sześciennego wysokiej jakości o zmiennym rozmiarze, aby wstępnie zmniejszyć obraz, jeśli skalowanie w dół jest uwzględnione w macierzy transformacji. Następnie używa trybu interpolacji sześciennych dla końcowych danych wyjściowych. |
Notatka
Jeśli nie wybierzesz trybu, to efekt domyślnie zostanie ustawiony na D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR.
Wymagania
| Wymaganie | Wartość |
|---|---|
| Minimalny obsługiwany klient | Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows] |
| Minimalny obsługiwany serwer | Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows] |
| Nagłówek | d2d1effects.h |
| Biblioteka | d2d1.lib, dxguid.lib |