白階調整效果

此效果可讓影像的白色層級以線性方式縮放。 當您在顯示器參考的亮度空間和場景參照亮度空間之間轉換,這特別有用,反之亦然。

這個效果的屬性是由 D2D1_WHITELEVELADJUSTMENT_PROP列舉所識別,而且 CLSID 會CLSID_D2D1WhiteLevelAdjustment

效果屬性

顯示名稱和索引列舉 類型和預設值 描述
InputWhiteLevel,D2D1_WHITELEVELADJUSTMENT_PROP_INPUT_WHITE_LEVEL FLOAT 輸入影像的白色層級,以 nits 為單位。
OutputWhiteLevel,D2D1_WHITELEVELADJUSTMENT_PROP_OUTPUT_WHITE_LEVEL FLOAT 輸出影像的白色層級,以 nits 為單位。

備註

此效果旨在與 HDR 音調對應效果 結合,讓您能夠使用適當的色彩管理和音調對應,在 Direct2D 中轉譯 HDR 影像。 See that topic's Remarks for more details. 效果的目標是任何想要提供最佳 HDR 影像檢視體驗的架構,可處理所有Windows HDR 影像格式,並適應顯示器 (,無論是 HDR 或 WCG/SDR) 的功能。

在Windows上,所有 SDR/WCG 內容都會假設在顯示參考的亮度空間中,這表示內容白階應該在最終呈現之前相應增加到顯示器的白色層級。 不過,您不一定會負責執行此動作。 相反地,HDR 內容假設在場景參考的亮度空間中,這表示不應最終調整為符合顯示器的白色層級。 也就是說,當轉譯 HDR 內容以確保這是淨結果時,您的應用程式可能需要在某些情況下執行縮放。

當Windows桌面處於 SDR 或 WCG 模式時,桌面會以顯示器參照的亮度空間組成。 但是,如果Windows桌面處於 HDR 模式,則桌面組合會在場景參考的亮度空間中發生。 也就是說,桌面視窗管理員 (DW) M 本身會針對 8 位組合介面執行 (稱為 SDRBoost) 的亮度調整,並簡化您針對該案例的應用程式。 即使如此,自動提升也表示應用程式從一個亮度空間轉換成另一個亮度空間的角色,取決於應用程式用來呈現其內容的組合格式。

下表描述應用程式應該且不應該執行白色層級調整的情況,以及該調整應該是什麼。 一般而言,調整取決於三個因素。

  1. 輸入內容色彩空間。 您的輸入內容是否包含高動態範圍 (HDR) 亮度值。 WCG 內容的行為與 SDR 相同,以取得亮度行為。
  2. 組合格式。 呈現至 DWM 的目標介面像素格式,例如 交換鏈 結或 組合介面。 使用 Direct2D 轉譯時,這是 UINT8FP16
  3. 桌面進階色彩模式。 DWM 是在目前顯示器的 SDR、WCG 或 HDR 模式中執行。 透過 DXGI_OUTPUT_DESC1::ColorSpaceAdvancedColorInfo.CurrentAdvancedColorKind取得此資訊。

根據這三個因素,您應該為 InputWhiteLevelOutputWhiteLevel 屬性設定適當的值。

輸入內容 組合格式 進階色彩模式 InputWhiteLevel OutputWhiteLevel
SDR/WCG UINT8 任意 N/A N/A
SDR/WCG FP16 SDR/WCG N/A N/A
SDR/WCG FP16 HDR SDRWhite 80
HDR 任意 SDR/WCG 80 DXGI_OUTPUT_DESC1::MaxLuminance
HDR UINT8 HDR 80 SDRWhite
HDR FP16 HDR N/A N/A

在資料表中,值 80 是 sRGB 或 scRGB 內容的參考白色層級。 因此,您可以使用 定義于 中的 d2d1effects_2.h數D2D1_SCENE_REFERRED_SDR_WHITE_LEVEL。 此值 SDRWhite 是顯示應該用來顯示白色 sRGB 內容的 nits 數目。 您可以藉由存取 AdvancedColorInfo.SdrWhiteLevelInNits 屬性來擷取此值。 N/A 值表示此案例中未使用白色層級調整;您可以從圖形中移除效果,或設定無作業的值。

請注意,在應用程式不需要調整白階調整的情況下,DWM 或顯示器可能會處理從顯示器參照的亮度空間轉換為場景參考亮度空間的轉換。

  • 在 SDR/WCG 模式中,轉換會在 DWM 組合之後發生,並套用至呈現給該顯示器的所有內容。 顯示會隱含地執行此轉換。
  • 在 HDR 模式中,只要應用程式的組合介面是 SDR,DWM 才會自動執行轉換。

規格需求

需求
最低支援的用戶端 Windows 10 版本 1809 (10.0;組建 17763) [傳統型應用程式|UWP 應用程式]
標頭 d2d1effects_2.h
程式庫 d2d1.lib、dxguid.lib