Efekt úpravy bílé úrovně
Tento efekt umožňuje lineární škálování bílé úrovně obrázku. To je užitečné zejména v případě, že převádíte mezi prostorem světelnosti podle zobrazení a prostorem světelnosti, na který odkazuje scéna, nebo naopak.
Vlastnosti tohoto efektu jsou identifikovány D2D1_WHITELEVELADJUSTMENT_PROP výčtua CLSID je CLSID_D2D1WhiteLevelAdjustment.
Vlastnosti efektu
Zobrazovaný název a výčet indexu | Typ a výchozí hodnota | Popis |
---|---|---|
InputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_INPUT_WHITE_LEVEL | PLOUT | Bílá úroveň vstupního obrázku v nits. |
OutputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_OUTPUT_WHITE_LEVEL | PLOUT | Bílá úroveň výstupního obrázku v nits. |
Poznámky
Tento efekt je určen ke kombinaci s HDR efekt mapy, aby bylo možné vykreslit obrázky HDR v Direct2D se správnou správou barev a mapováním tónů. Další podrobnosti najdete v tématu Poznámky. Efekty jsou zaměřeny na libovolnou architekturu, která chce poskytovat nejlepší prostředí pro prohlížení obrázků HDR ve třídě, které zpracovává všechny formáty obrázků Windows HDR a přizpůsobuje se schopnostem displeje (ať už jde o HDR nebo WCG/SDR).
Ve Windows se předpokládá, že veškerý obsah SDR/WCG je v zobrazeném prostoru světelnosti, což znamená, že bílá úroveň obsahu by se měla vertikálně navýšit na bílou úroveň zobrazení, než se nakonec zobrazí. Není to ale vždy zodpovědností vaší aplikace. Naproti tomu se předpokládá, že obsah HDR se nachází ve světelním prostoru s odkazem na scénu, což znamená, že by se nemělo v konečném důsledku škálovat tak, aby odpovídalo bílé úrovni zobrazení. To znamená, že aplikace může v některých případech muset provést škálování při vykreslování obsahu HDR, aby se zajistilo, že se jedná o čistý výsledek.
Pokud je plocha Windows v režimu SDR nebo WCG, plocha se skládá v prostoru světelnosti podle displeje. Pokud je ale plocha Windows v režimu HDR, stane se složení plochy v prostoru světelnosti podle scény. To znamená, že Desktop Window Manager (DWM) sám provádí úpravy světelnosti (často označované jako SDRBoost) pro 8bitové povrchy složení a to zjednodušuje vaši aplikaci pro tento případ. I tak automatické zvýšení znamená, že role vaší aplikace při převodu z jednoho prostoru světelnosti na jinou závisí na formátu složení, který vaše aplikace používá k prezentaci jejího obsahu.
Následující tabulka popisuje případy, kdy by vaše aplikace měla a neměla by provádět úpravy bílé úrovně, a také to, co by mělo být. Obecně platí, že úprava závisí na třech faktorech.
- Barevný prostor vstupního obsahu Bez ohledu na to, jestli vstupní obsah obsahuje hodnoty jasu s vysokým dynamickým rozsahem (HDR), nebo ne. Obsah WCG se chová stejně jako SDR pro chování světelnosti.
- Formát složení Formát pixelu cílové plochy, která je prezentována DWM – například prohození řetězu nebo povrchu složení. Při vykreslování pomocí Direct2D je to UINT8 nebo FP16.
- Desktopový rozšířený barevný režim. Ať už je DWM spuštěný v režimu SDR, WCG nebo HDR pro aktuální displej. Získejte tyto informace prostřednictvím DXGI_OUTPUT_DESC1::ColorSpace nebo AdvancedColorInfo.CurrentAdvancedColorKind.
Na základě těchto tří faktorů byste měli nastavit příslušné hodnoty pro vlastnosti InputWhiteLevel
a OutputWhiteLevel
.
Vstupní obsah | Formát složení | Rozšířený barevný režim | InputWhiteLevel | OutputWhiteLevel |
---|---|---|---|---|
SDR/WCG | UINT8 | Jakýkoliv | Není k dispozici | Není k dispozici |
SDR/WCG | FP16 | SDR/WCG | Není k dispozici | Není k dispozici |
SDR/WCG | FP16 | HDR | SDRWhite | 80 |
HDR | Jakýkoliv | SDR/WCG | 80 | DXGI_OUTPUT_DESC1::MaxLuminance |
HDR | UINT8 | HDR | 80 | SDRWhite |
HDR | FP16 | HDR | Není k dispozici | Není k dispozici |
V tabulce je hodnota 80 referenční bílou úrovní v nits pro obsah sRGB nebo scRGB. K tomu můžete použít konstantní D2D1_SCENE_REFERRED_SDR_WHITE_LEVEL, který je definován v d2d1effects_2.h
. Hodnota SDRWhite
je počet nitů, které má displej použít k zobrazení bílého obsahu sRGB. Tuto hodnotu můžete načíst přístupem k AdvancedColorInfo.SdrWhiteLevelInNits vlastnost. Hodnota není k dispozici, znamená to, že v tomto scénáři se nepoužívá úprava bílé úrovně; efekt můžete z grafu odebrat nebo nastavit hodnoty pro no-op.
Všimněte si, že v případech, kdy aplikace nevyžaduje úpravu bílé úrovně, může DWM nebo displej zpracovávat převod z prostoru světelnosti podle zobrazení na prostor světelnosti, na který odkazuje scéna.
- V režimu SDR/WCG se převod provede po složení DWM a vztahuje se na veškerý obsah zobrazený na tomto displeji. Zobrazení implicitně provádí tento převod.
- V režimu HDR se převod provádí automaticky dwm před složením, pokud je povrch složení vaší aplikace SDR.
Požadavky
Požadavek | Hodnota |
---|---|
Minimální podporovaný klient | Windows 10 verze 1809 (10.0; Build 17763) [desktopové aplikace | Aplikace pro UPW] |
Záhlaví | d2d1effects_2.h |
Knihovna | d2d1.lib, dxguid.lib |
Související témata
- rozhraní ID2D1Effect
- D2D1_WHITELEVELADJUSTMENT_PROP výčtu