White level adjustment effect (Auswirkung der Anpassung der Weißebene)

Dieser Effekt ermöglicht die lineare Skalierung der weißen Ebene eines Bilds. Dies ist besonders hilfreich, wenn Sie zwischen anzeigeverwiesenen Leuchtdichteraum und szenenbezogenem Leuchtraum konvertieren oder umgekehrt.

Die Eigenschaften für diesen Effekt werden durch die D2D1_WHITELEVELADJUSTMENT_PROP-Enumerationidentifiziert, und die CLSID ist CLSID_D2D1WhiteLevelAdjustment.

Effect-Eigenschaften

Anzeigename und Indexenumeration Typ und Standardwert BESCHREIBUNG
InputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_INPUT_WHITE_LEVEL GLEITKOMMAZAHL Die weiße Ebene des Eingabebilds in Nits.
OutputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_OUTPUT_WHITE_LEVEL GLEITKOMMAZAHL Die Weißebene des Ausgabebilds in Nits.

Bemerkungen

Dieser Effekt soll mit dem HDR-Tonbildeffekt kombiniert werden, damit Sie HDR-Bilder in Direct2D mit ordnungsgemäßer Farbverwaltung und Tonzuordnung rendern können. Weitere Informationen finden Sie in den Hinweisen zu diesem Thema. Die Effekte sind auf jedes Framework ausgerichtet, das eine erstklassige HDR-Bildanzeige bieten möchte, die alle Windows HDR-Bildformate verarbeitet und sich an die Funktionen der Anzeige anpasst (unabhängig davon, ob es sich um HDR oder WCG/SDR handelt).

Auf Windows wird davon ausgegangen, dass sich alle SDR-/WCG-Inhalte in einem anzeigeverweisten Leuchtdichtebereich befindet. Dies bedeutet, dass der Weißgrad des Inhalts auf den Weißen Grad der Anzeige hochskaliert werden sollte, bevor er letztendlich angezeigt wird. Es liegt jedoch nicht immer in der Verantwortung Ihrer Anwendung, dies zu tun. Im Gegensatz dazu wird davon ausgegangen, dass sich HDR-Inhalte in einem von der Szene bezeichneten Leuchtdichtebereich befindet, was bedeutet, dass sie letztendlich nicht so skaliert werden sollten, dass sie dem Weißgrad der Anzeige entsprechen. Allerdings muss Ihre Anwendung möglicherweise unter bestimmten Umständen beim Rendern von HDR-Inhalten skalieren, um sicherzustellen, dass dies das Endergebnis ist.

Wenn sich der Windows Desktop im SDR- oder WCG-Modus befindet, besteht der Desktop aus einem Anzeigebereich mit Bezug auf die Leuchtdichte. Wenn sich der Windows Desktop jedoch im HDR-Modus befindet, erfolgt die Desktopkomposition im szeneverwiesenen Leuchtraum. Allerdings führt der Desktopfenster-Manager (DWM) selbst Leuchtdichteanpassungen (häufig als SDRBoost bezeichnet) für 8-Bit-Kompositionsoberflächen durch, was Ihre Anwendung für diesen Fall vereinfacht. Trotzdem bedeutet die automatische Verstärkung, dass die Rolle Ihrer Anwendung bei der Konvertierung von einem Leuchtdichtebereich in einen anderen vom Kompositionsformat abhängt, das Ihre Anwendung verwendet, um ihren Inhalt darzustellen.

In der folgenden Tabelle werden die Fälle beschrieben, in denen Ihre Anwendung eine Anpassung des Weißgrads durchführen sollte und nicht, sowie die Fälle, in denen diese Anpassung erfolgen sollte. Im Allgemeinen hängt die Anpassung von drei Faktoren ab.

  1. Eingabeinhaltsfarbraum. Gibt an, ob Ihr Eingabeinhalt HDR-Leuchtdichtewerte (High Dynamic Range) enthält oder nicht. WCG-Inhalte verhalten sich hinsichtlich des Leuchtdichteverhaltens genauso wie SDR.
  2. Kompositionsformat. Das Pixelformat der Zieloberfläche, die dem DWM angezeigt — wird, z. B. eine Austauschkette oder eine Kompositionsoberfläche. Beim Rendern mit Direct2D ist dies entweder UINT8 oder FP16.
  3. Erweiterter Desktopfarbmodus. Gibt an, ob der DWM im SDR-, WCG- oder HDR-Modus für die aktuelle Anzeige ausgeführt wird. Rufen Sie diese Informationen über DXGI_OUTPUT_DESC1::ColorSpace oder AdvancedColorInfo.CurrentAdvancedColorKindab.

Basierend auf diesen drei Faktoren sollten Sie die entsprechenden Werte für die InputWhiteLevel Eigenschaften und OutputWhiteLevel festlegen.

Eingabeinhalt Kompositionsformat Erweiterter Farbmodus InputWhiteLevel OutputWhiteLevel
SDR/WCG UINT8 Any NICHT ZUTREFFEND
SDR/WCG FP16 SDR/WCG NICHT ZUTREFFEND NICHT ZUTREFFEND
SDR/WCG FP16 HDR SDRWhite 80
HDR Any SDR/WCG 80 DXGI_OUTPUT_DESC1::MaxLuminance
HDR UINT8 HDR 80 SDRWhite
HDR FP16 HDR NICHT ZUTREFFEND NICHT ZUTREFFEND

In der Tabelle ist der Wert 80 der Weißwert des Verweises in Nits für sRGB- oder scRGB-Inhalt. Hierzu können Sie die Konstante D2D1_SCENE_REFERRED_SDR_WHITE_LEVELverwenden, die in definiert d2d1effects_2.h ist. Der Wert SDRWhite ist die Anzahl von Ungnen, die die Anzeige verwenden soll, um weißen SRGB-Inhalt anzuzeigen. Sie können diesen Wert abrufen, indem Sie auf die AdvancedColorInfo.SdrWhiteLevelInNits-Eigenschaft zugreifen. Der Wert N/A bedeutet, dass die Anpassung des Weißgrads in diesem Szenario nicht verwendet wird. Sie können entweder den Effekt aus dem Diagramm entfernen oder Werte für einen No-Op-Wert festlegen.

Beachten Sie, dass in Fällen, in denen eine Anpassung des Weißgrads für die Anwendung nicht erforderlich ist, der DWM oder die Anzeige möglicherweise die Konvertierung von dem anzeigebezogenen Leuchtdichteraum in den als Szene bezeichneten Leuchtraum verarbeiten kann.

  • Im SDR-/WCG-Modus erfolgt die Konvertierung nach der DWM-Komposition und gilt für alle Inhalte, die dieser Anzeige angezeigt werden. Die Anzeige führt diese Konvertierung implizit aus.
  • Im HDR-Modus wird die Konvertierung automatisch vom DWM vor der Komposition ausgeführt, solange die Kompositionsoberfläche Ihrer Anwendung SDR ist.

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1809 (10.0; Build 17763) [ Desktop-Apps | UWP-Apps]
Header d2d1effects _ 2.h
Bibliothek d2d1.lib, dxguid.lib