Efekt oświetlenia punktowego z połyskiem
Użyj efektu oświetlenia typu spot-specular, aby utworzyć obraz, który wydaje się być powierzchnią odbijającą, gdzie źródło światła jest ograniczone do skierowanej stożki światła. Ten efekt używa kanału alfa jako mapy wysokości i oświetla obraz źródłem światła punktowego.
Kolor mapy bitowej wyjściowej jest wynikiem koloru światła, pozycji światła, kierunku stożka i geometrii powierzchni zgodnie z specularną częścią modelu oświetlenia Phong. Wyjście kanału alfa dla każdego piksela z oświetleniem widmowym jest maksymalną wartością danych wyjściowych czerwonego, zielonego i niebieskiego kanału dla tego piksela.
Identyfikator CLSID dla tego efektu jest CLSID_D2D1SpotSpecular.
- Przykładowy obraz
- źródło światła typu spot
- 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 typu spot-specularnego.
Światło widmowe odnosi się do światła, które odbija się w określonym kierunku.
Efekt oblicza końcowe wartości pikseli wyjściowych przy użyciu poniższych równań:
gdzie
Źródło światła typu spot
Źródło światła punktowego emituje światło w stożku w określonym kierunku i nie emituje światła poza stożkiem.
Źródło światła punktowego oblicza wektor światła L i wektor pośredni H w taki sam sposób, jak efekt punktowo-zwierciadlany.
Efekt oblicza kolor światła Lr, Lg, Lb, jako funkcję położenia źródła światła, jak pokazano w równaniach tutaj:
równanie dla źródła światła typu spot
Wektor jest definiowana przez następujące równania:
równanie
Symbol wektora jest definiowany przez następujące równania:
równanie
Właściwości efektu
Nazwa wyświetlana i wyliczenie indeksu | Opis |
---|---|
Pozycja Światła Pozycja światła D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION |
Położenie światła punktu źródła światła. Właściwość jest D2D1_VECTOR_3F zdefiniowana jako (x, y, z). Jednostki są w pikselach niezależnych od urządzenia (DIPs) i są niezwiązane. Typ jest D2D1_VECTOR_3F. Wartość domyślna to {0.0f, 0.0f, 0.0f}. |
Punkty D2D1_SPOTSPECULAR_PROP_POINTS_AT |
Gdzie koncentruje się światło punktowe? Właściwość jest widoczna jako D2D1_VECTOR_3F (x, y, z). Jednostki są w DIP-ach, a wartości są nieograniczone. Typ jest D2D1_VECTOR_3F. Wartość domyślna to {0.0f, 0.0f, 0.0f}. |
Skupienie D2D1_SPOTSPECULAR_PROP_FOCUS |
Fokus światła punktowego. Ta właściwość jest bezjednostkowa i jest zdefiniowana w zakresie od 0 do 200. Typ jest „FLOAT”. Wartość domyślna to 1.0f. |
Ograniczenie kąta stożka D2D1_SPOT_SPECULAR_PROP_LIMITING_CONE_ANGLE (Kąt ograniczający stożek) |
Kąt stożka, który ogranicza obszar, w którym jest rzutowane światło. Żadne światło nie jest rzutowane poza stożek. Kąt graniczny stożka jest kątem między osią reflektora punktowego (oś między LightPosition a PointsAt właściwości) a stożkiem światła punktowego. Ta właściwość jest zdefiniowana w stopniach i musi należeć do zakresu od 0 do 90 stopni. Typ jest FLOAT. Wartość domyślna to 90.0f. |
SpecularExponent D2D1_PARAMETR_PUNKTOWY_BŁYSKU_WSPÓŁCZYNNIK_BŁYSZCZENIA |
Wykładnik terminu specularnego w równaniu oświetlenia Phong. Większa wartość odpowiada bardziej refleksyjnej powierzchni. Ta wartość jest bez jednostki i musi należeć do przedziału od 1,0 do 128. Typ jest FLOAT. Wartość domyślna to 1.0f. |
SpecularConstant D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT |
Stosunek odbicia widmowego do światła przychodzącego. Wartość jest bez jednostki i musi być pomiędzy 0 a 10 000. Typ jest FLOAT. Wartość domyślna to 1.0f. |
SurfaceScale D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE |
Współczynnik skalowania w kierunku Z do generowania mapy wysokości. Wartość jest bezwymiarowa i musi zawierać się w przedziale od 0 do 10 000. Typ to rodzaj FLOAT. Wartość domyślna to 1.0f. |
Kolor D2D1_SPOTSPECULAR_PROP_COLOR |
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. Typ to jest D2D1_VECTOR_3F. Wartość domyślna to {1.0f, 1.0f, 1.0f}. |
DługośćJednostkiKernela D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH |
Rozmiar elementu w jądrze Sobela używanym do generowania normalnych powierzchni w kierunkach X i Y. Ta właściwość odpowiada wartościom dx i dy w gradiencie Sobela. Ta właściwość to 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. Typ jest D2D1_VECTOR_2F. Wartość domyślna to {1.0f, 1.0f}. |
Tryb skalowania D2D1_SPOTSPECULAR_PROP_SCALE_MODE |
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. Typ jest D2D1_SPOTSPECULAR_SCALE_MODE. Wartość domyślna to D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR. |
Tryby skalowania
Wyliczenie | Opis |
---|---|
D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | Próbkuje najbliższy pojedynczy punkt i używa go. Ten tryb używa mniej czasu przetwarzania, ale generuje obraz o najniższej jakości. |
D2D1_SPOTSPECULAR_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_SPOTSPECULAR_SCALE_MODE_CUBIC | Używa sześciennego jądra z 16 próbkami do interpolacji. Ten tryb używa najbardziej czasu przetwarzania, ale generuje obraz o wyższej jakości. |
D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR | Używa 4 próbek liniowych w jednym pikselu do dobrego anty aliasowania krawędzi. Ten tryb jest dobry do skalowania w dół o niewielkie wartości na obrazach z niewielką liczbą pikseli. |
D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC | Używa filtrowania anisotropowego do próbkowania wzorca zgodnie z przekształconym kształtem mapy bitowej. |
D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | Używa jądra sześciennego wysokiej jakości o zmiennej wielkości, aby przeprowadzić wstępne zmniejszenie skali obrazu, jeśli skalowanie w dół jest częścią macierzy transformacji. Następnie używa trybu interpolacji sześciennych dla końcowych danych wyjściowych. |
Nota
Jeśli nie wybierzesz trybu, efekt będzie domyślnie ustawiony na D2D1_SPOTSPECULAR_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 |