白色级别调整效果

此效果允许线性缩放图像的白色级别。 当在显示引用的亮度空间与场景引用的亮度空间之间转换时,或相反,这一点特别有用。

此效果的属性由 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 图像。 有关更多详细信息,请参阅该主题的 备注 。 这些效果的目的是要提供一种最佳的 hdr 图像查看体验,该框架可处理所有 Windows hdr 图像格式,并可适应显示的功能 (它是 HDR 还是 WCG/SDR) 。

在 Windows 上,假定所有 SDR/WCG 内容处于显示引用的亮度空间中,这意味着在最终显示内容的白色级别之前,应将该内容的白色级别向上扩展到显示屏的白色。 但是,你的应用程序不一定会负责执行此操作。 与此相反,HDR 内容被假定为在场景上引用的亮度空间,这意味着不应最终缩放以匹配显示的白色级别。 也就是说,在呈现 HDR 内容时,应用程序可能需要执行缩放,以确保这是最终结果。

当 Windows 桌面处于 SDR 或 WCG 模式下时,桌面在显示参考的亮度空间中撰写。 但如果 Windows 桌面处于 HDR 模式,则桌面组合会出现在场景上,即 "亮度空间"。 也就是说,桌面窗口管理器 (DWM) 本身会执行8位组合表面 (通常称为) SDRBoost 的亮度调整,并简化应用程序的这种情况。 尽管如此,自动提升也意味着应用程序在从一种亮度空间转换到另一种空间时的角色取决于应用程序用于显示其内容的撰写格式。

下表描述了应用程序应该和不应执行白级别调整的情况,以及应进行的调整。 通常,调整取决于三个因素。

  1. 输入 content colorspace。 输入内容是否包含高动态范围 (HDR) 亮度值。 WCG 内容与 SDR 的行为相同。
  2. 组合格式。 呈现给 DWM 的目标图面的像素格式 — ,例如, 交换链组合图面。 使用 Direct2D 进行呈现时,此为 UINT8FP16
  3. 桌面高级颜色模式。 对于当前显示,DWM 是在 SDR、WCG 还是 HDR 模式下运行。 通过 DXGI_OUTPUT_DESC1:: ColorSpaceAdvancedColorInfo获取此信息。

基于这三个因素,你应该为和属性设置相应的 InputWhiteLevelOutputWhiteLevel

输入内容 撰写格式 高级颜色模式 InputWhiteLevel OutputWhiteLevel
SDR/WCG UINT8 任意 不适用 不适用
SDR/WCG FP16 SDR/WCG 不适用 不适用
SDR/WCG FP16 高动态范围图像 SDRWhite 80
高动态范围图像 任意 SDR/WCG 80 DXGI_OUTPUT_DESC1:: MaxLuminance
高动态范围图像 UINT8 高动态范围图像 80 SDRWhite
高动态范围图像 FP16 高动态范围图像 不适用 不适用

在表中,值80是 nits 中适用于 sRGB 或 scRGB 内容的引用白色级别。 为此,可以使用在中定义的常量 D2D1_SCENE_REFERRED_SDR_WHITE_LEVEL d2d1effects_2.h 。 该值 SDRWhite 是显示显示的 sRGB 内容应使用的 nits 数。 可以通过访问 AdvancedColorInfo. SdrWhiteLevelInNits 属性检索此值。 值为 "N/A" 表示在此方案中不使用白色级别调整;可以从关系图中删除效果,或设置非 op 值。

请注意,在应用程序不需要空白级别调整的情况下,DWM 或显示器可能会处理从显示的亮度空间到场景引用的亮度空间的转换。

  • 在 SDR/WCG 模式下,转换在 DWM 组合后发生,并适用于显示的所有内容。 该显示将隐式执行此转换。
  • 在 HDR 模式下,只要应用程序的组合图面为 SDR,就会在组合之前自动执行转换。

要求

要求
最低受支持的客户端 Windows 10 版本 1809 (10.0;生成 17763) [ 桌面应用 | UWP 应用]
标头 d2d1effects _ 2。h
d2d1,dxguid