Efekt vzdáleného zrcadlového osvětlení
Použijte efekt vzdáleného zrcadlového osvětlení k vytvoření obrazu, který vypadá jako reflexní povrch, přičemž zdroj světla se jeví jako pocházející z velké vzdálenosti (například slunce nebo stropní světla). Tento efekt používá kanál alfa jako mapu výšky a osvětluje obrázek ze vzdáleného zdroje světla.
Barva výstupního rastrového obrázku je výsledkem světlé barvy, umístění světla a geometrie povrchu. Výstup alfa kanálu pro každý pixel se spekulárním osvětlením je maximum červených, zelených a modrých výstupů kanálů pro daný pixel.
CLSID pro tento efekt je CLSID_D2D1DistantSpecular.
- příklad obrázku
- vzdálený zdroj světla
- vlastnosti efektu
- režimy škálování
- požadavky
- související témata
Příklad obrázku
Příklad zde ukazuje vstupní a výstupní obrázky světelného efektu vzdáleného spekulárního osvětlení.
Konečný výstupní rastrový obrázek lze vypočítat pomocí následujících rovnic.
kde
- k? = konstanta zrcadlového osvětlení.


Cr, Cg, Cb = barva světla v součástech RGB.
Vzdálený zdroj světla
Obrázek zde ukazuje příklad směru světla ze vzdáleného zdroje světla.
Efekt používá parametry azimutu a elevace k výpočtu světelného vektoru pomocí těchto rovnic:
výpočet vektorů světla
kde Light?, Lightya Lightz jsou vstupní hodnoty pozice světla.
Vlastnosti efektu
Zobrazovaný název a výčet indexů | Popis |
---|---|
Azimut D2D1_DISTANTSPECULAR_PROP_AZIMUTH |
Úhel směru zdroje světla v rovině XY vzhledem k ose X v čítačovém směru. Jednotky jsou ve stupních a musí být v rozmezí 0 až 360 stupňů. Typ je FLOAT. Výchozí hodnota je 0,0f. |
Nadmořská výška D2D1_DISTANTSPECULAR_PROP_ELEVATION |
Úhel směru zdroje světla v rovině YZ vzhledem k ose Y v čítačovém směru. Jednotky jsou ve stupních a musí být v rozmezí 0 až 360 stupňů. Typ je FLOAT. Výchozí hodnota je 0,0f. |
SpecularExponent D2D1_DISTANTSPECULAR_PROP_SPECULAR_EXPONENT |
Exponent pro spekulární člen v Phongové osvětlovací rovnici. Větší hodnota odpovídá reflexnějšímu povrchu. Hodnota je bez jednotná a musí být mezi 1,0 a 128. Typ je FLOAT. Výchozí hodnota je 1,0f. |
SpecularConstant D2D1_DISTANTSPECULAR_PROP_SPECULAR_CONSTANT |
Poměr speculárního odrazu k dopadajícímu světlu. Hodnota je bez jednotná a musí být v rozmezí od 0 do 10 000. Typ je FLOAT. Výchozí hodnota je 1,0f. |
SurfaceScale D2D1_DISTANTSPECULAR_PROP_SURFACE_SCALE |
Měřítkový faktor ve směru Z. Hodnota je bez jednotná a musí být v rozmezí od 0 do 10 000. Typ je FLOAT. Výchozí hodnota je 1,0f. |
Barva D2D1_DISTANTSPECULAR_PROP_COLOR |
Barva příchozího světla. Tato vlastnost je vystavena jako D2D1_VECTOR_3F (R, G, B) a slouží k výpočtu LR, LG, LB. Typ je D2D1_VECTOR_3F. Výchozí hodnota je {1.0f, 1.0f, 1.0f}. |
Délka jádra jednotky D2D1_DISTANTSPECULAR_PROP_KERNEL_UNIT_LENGTH |
Velikost prvku v jádru Sobel použité k vygenerování normálního povrchu ve směru X a Y. Tato vlastnost je D2D1_VECTOR_2F (délka jednotky jádra X, délka jednotky jádra Y) a je definována v (pixely nezávislé na zařízení (DIPs)/Jednotka jádra). Efekt používá bilineární interpolaci ke škálování rastrového obrázku tak, aby odpovídal velikosti prvků jádra. Typ je D2D1_VECTOR_2F. Výchozí hodnota je {1.0f, 1.0f}. |
Mód škálování D2D1_DISTANTSPECULAR_PROP_SCALE_MODE |
Režim interpolace, který efekt používá ke škálování obrázku na odpovídající délku jednotky jádra. Existuje šest režimů škálování, které jsou v rozsahu kvality a rychlosti. Typ je D2D1_DISTANTSPECULAR_SCALE_MODE. Výchozí hodnota je D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR. |
Režimy škálování
Výčet | Popis |
---|---|
D2D1_DISTANTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | Vzorkuje nejbližší jeden bod a použije ho. Tento režim používá méně času zpracování, ale vypíše nejnižší kvalitu obrázku. |
D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR | Používá čtyřbodový vzorek a lineární interpolaci. Tento režim vypíše obrázek s vyšší kvalitou než nejbližší soused. |
D2D1_DISTANTSPECULAR_SCALE_MODE_CUBIC | Pro interpolaci se používá krychlové jádro se 16 vzorky. Tento režim zabírá nejvíce času na zpracování, ale vytváří obraz vyšší kvality. |
D2D1_DISTANTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR | Používá 4 lineární vzorky v jednom pixelu pro dobrý anti-aliasing okrajů. Tento režim se hodí pro zmenšení o malé množství na obrázcích s malým počtem pixelů. |
D2D1_DISTANTSPECULAR_SCALE_MODE_ANISOTROPIC | Používá anisotropní filtrování k vzorkování vzorku podle transformovaného tvaru rastrového obrázku. |
D2D1_DISTANTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC (režim škálování s vysokou kvalitou) | Používá vysoce kvalitní krychlové jádro s proměnnou velikostí, za účelem předběžného zmenšení obrazu, pokud do transformační matice patří změna rozměrů. Pak použije režim krychlové interpolace pro konečný výstup. |
Poznámka
Pokud režim nevyberete, efekt se ve výchozím nastavení přiřadí hodnotě D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR.
Požadavky
Požadavek | Hodnota |
---|---|
Minimální podporovaný klient | Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store] |
Minimální podporovaný server | Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store] |
Záhlaví | d2d1effects.h |
Knihovna | d2d1.lib, dxguid.lib |