Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet effet permet au niveau blanc d’une image d’être mis à l’échelle linéairement. Cela est particulièrement utile lorsque vous convertissez entre l’espace de luminance référencé par l’affichage et l’espace de luminance référencée par la scène, ou inversement.
Les propriétés de cet effet sont identifiées par l’énumération D2D1_WHITELEVELADJUSTMENT_PROP, et le CLSID est CLSID_D2D1WhiteLevelAdjustment.
Propriétés d’effet
| Nom complet et énumération d’index | Type et valeur par défaut | Description |
|---|---|---|
| InputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_INPUT_WHITE_LEVEL | FLOTTER | Niveau blanc de l’image d’entrée, dans les nits. |
| OutputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_OUTPUT_WHITE_LEVEL | FLOTTER | Niveau blanc de l’image de sortie, en nits. |
Remarques
Cet effet est destiné à être combiné avec l’effet de carte de tonalité HDR pour vous permettre d’afficher des images HDR dans Direct2D avec une gestion des couleurs et un mappage de tonalité appropriés. Pour plus d’informations, consultez les remarques de cette rubrique. Les effets sont destinés à n’importe quel framework qui souhaite fournir une expérience d’affichage d’images HDR de classe optimale qui gère tous les formats d’image HDR Windows, et s’adapte aux fonctionnalités de l’affichage (que ce soit HDR ou WCG/SDR).
Sur Windows, tout le contenu SDR/WCG est supposé être dans un espace de luminosité référencé par l’affichage, ce qui signifie que le niveau blanc du contenu doit être mis à l’échelle jusqu’au niveau blanc de l’affichage avant qu’il ne soit finalement présenté. Toutefois, il n’est pas toujours responsable de votre application de le faire. En revanche, le contenu HDR est supposé être dans un espace de luminance référencé sur la scène, ce qui signifie qu’il ne doit pas finalement être mis à l’échelle pour correspondre au niveau blanc de l’affichage. Cela dit, votre application peut avoir besoin d’effectuer une mise à l’échelle dans certaines circonstances lors du rendu du contenu HDR pour vous assurer qu’il s’agit du résultat net.
Lorsque le bureau Windows est en mode SDR ou WCG, le bureau est composé dans un espace de luminosité référencé par l’affichage. Mais si le bureau Windows est en mode HDR, la composition du bureau se produit dans l’espace de luminance référencé sur les scènes. Cela dit, le Gestionnaire de fenêtres de bureau (DWM) lui-même effectue des ajustements de luminance (souvent appelés SDRBoost) pour les surfaces de composition 8 bits, et qui simplifie votre application pour ce cas. Dans ce cas, le renforcement automatique signifie que le rôle de votre application dans la conversion d’un espace de luminosité vers un autre dépend du format de composition que votre application utilise pour présenter son contenu.
Le tableau ci-dessous décrit les cas où votre application doit et ne doit pas effectuer d’ajustement au niveau blanc, ainsi que ce que doit être cet ajustement. En général, l’ajustement dépend de trois facteurs.
- Espace de couleur de contenu d’entrée. Que votre contenu d’entrée contienne des valeurs de luminosité de plage dynamique élevée (HDR) ou non. Le contenu WCG se comporte comme SDR pour le comportement de luminance.
- Format de composition. Format de pixel de la surface cible présentée au DWM( par exemple, une chaîne d’échange ou une surface de composition . Lors du rendu à l’aide de Direct2D, il s’agit de UINT8 ou de FP16.
- Mode de couleur avancé du bureau. Que le DWM s’exécute en mode SDR, WCG ou HDR pour l’affichage actuel. Obtenez ces informations via DXGI_OUTPUT_DESC1 ::ColorSpace ou AdvancedColorInfo.CurrentAdvancedColorKind.
En fonction de ces trois facteurs, vous devez définir les valeurs appropriées pour les propriétés InputWhiteLevel et OutputWhiteLevel.
| Contenu d’entrée | Format de composition | Mode de couleur avancé | InputWhiteLevel | OutputWhiteLevel |
|---|---|---|---|---|
| SDR/WCG | uiNT8 | Quelconque | N/A | N/A |
| SDR/WCG | FP16 | SDR/WCG | N/A | N/A |
| SDR/WCG | FP16 | HDR | SDRWhite | 80 |
| HDR | Quelconque | SDR/WCG | 80 | DXGI_OUTPUT_DESC1 ::MaxLuminance |
| HDR | uiNT8 | HDR | 80 | SDRWhite |
| HDR | FP16 | HDR | N/A | N/A |
Dans la table, la valeur 80 est le niveau blanc de référence, dans les nits, pour le contenu sRVB ou scRGB. Pour cela, vous pouvez utiliser la constante D2D1_SCENE_REFERRED_SDR_WHITE_LEVEL, qui est définie dans d2d1effects_2.h. La valeur SDRWhite correspond au nombre de nits que l’affichage doit utiliser pour afficher le contenu sRGB blanc. Vous pouvez récupérer cette valeur en accédant à la propriété AdvancedColorInfo.SdrWhiteLevelInNits. La valeur N/A signifie que l’ajustement au niveau blanc n’est pas utilisé dans ce scénario ; vous pouvez supprimer l’effet de votre graphique ou définir des valeurs pour un no-op.
Notez que, dans les cas où un ajustement au niveau blanc n’est pas nécessaire par l’application, le DWM ou l’affichage peut gérer la conversion de l’espace de luminance référencé par l’affichage en espace de luminosité référencée par la scène.
- En mode SDR/WCG, la conversion se produit après la composition de DWM et s’applique à tout le contenu présenté à cet affichage. L’affichage effectue implicitement cette conversion.
- En mode HDR, la conversion est effectuée automatiquement par le DWM avant la composition, tant que la surface de composition de votre application est SDR.
Exigences
| Exigence | Valeur |
|---|---|
| Client minimum pris en charge | Windows 10, version 1809 (10.0 ; Build 17763) [applications de bureau | Applications UWP] |
| En-tête | d2d1effects_2.h |
| Bibliothèque | d2d1.lib, dxguid.lib |