Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esse efeito permite que o nível branco de uma imagem seja dimensionado linearmente. Isso é especialmente útil quando você converte entre o espaço de luminância referenciado pela exibição e o espaço de luminância referenciado pela cena ou vice-versa.
As propriedades desse efeito são identificadas pelode enumeraçãoD2D1_WHITELEVELADJUSTMENT_PROP e o CLSID é CLSID_D2D1WhiteLevelAdjustment.
Propriedades de efeito
| Nome de exibição e enumeração de índice | Tipo e valor padrão | Descrição |
|---|---|---|
| InputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_INPUT_WHITE_LEVEL | FLUTUAR | O nível branco da imagem de entrada, em nits. |
| OutputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_OUTPUT_WHITE_LEVEL | FLUTUAR | O nível branco da imagem de saída, em nits. |
Observações
Esse efeito destina-se a ser combinado com o efeito de mapa de tom HDR para permitir que você renderize imagens HDR no Direct2D com o gerenciamento de cores e o mapeamento de tom adequados. Consulte o de Comentários desse tópico para obter mais detalhes. Os efeitos são destinados a qualquer estrutura que queira fornecer uma melhor experiência de exibição de imagem HDR na classe que manipula todos os formatos de imagem do Windows HDR e se adapta aos recursos da exibição (seja HDR ou WCG/SDR).
No Windows, todo o conteúdo SDR/WCG é considerado em um espaço de luminância referenciado para exibição, o que significa que o nível em branco do conteúdo deve ser escalado para o nível branco da exibição antes de ser apresentado. No entanto, nem sempre é responsabilidade do aplicativo fazer isso. Por outro lado, supõe-se que o conteúdo do HDR esteja em um espaço de luminância referenciado pela cena, o que significa que ele não deve ser dimensionado para corresponder ao nível branco da exibição. Dito isto, seu aplicativo pode precisar executar o dimensionamento em algumas circunstâncias ao renderizar o conteúdo do HDR para garantir que esse seja o resultado líquido.
Quando a área de trabalho do Windows está no modo SDR ou WCG, a área de trabalho é composta em um espaço de luminância referenciado por exibição. Mas se a área de trabalho do Windows estiver no modo HDR, a composição da área de trabalho ocorrerá no espaço de luminância referenciado por cena. Dito isto, o próprio DWM (Gerenciador de Janelas da Área de Trabalho) executa ajustes de luminância (geralmente chamados de SDRBoost) para superfícies de composição de 8 bits e isso simplifica seu aplicativo para esse caso. Mesmo assim, o aumento automático significa que a função do aplicativo na conversão de um espaço de luminância para outro depende do formato de composição que seu aplicativo está usando para apresentar seu conteúdo.
A tabela a seguir descreve os casos em que seu aplicativo deve e não deve executar um ajuste de nível branco, bem como qual deve ser esse ajuste. Em geral, o ajuste depende de três fatores.
- Colorspace de conteúdo de entrada. Se o conteúdo de entrada contém valores de luminância hdr (alto intervalo dinâmico) ou não. O conteúdo do WCG se comporta da mesma forma que o SDR para o comportamento de luminância.
- Formato de composição. O formato de pixel da superfície de destino apresentada ao DWM, por exemplo, uma de cadeia de troca de ou uma superfície de composição . Ao renderizar usando Direct2D, isso é UINT8 ou FP16 .
- Modo de cor avançado da área de trabalho. Se o DWM está em execução no modo SDR, WCG ou HDR para a exibição atual. Obtenha essas informações por DXGI_OUTPUT_DESC1::ColorSpace ou AdvancedColorInfo.CurrentAdvancedColorKind.
Com base nesses três fatores, você deve definir os valores apropriados para as propriedades InputWhiteLevel e OutputWhiteLevel.
| Conteúdo de entrada | Formato de composição | Modo de cor avançado | InputWhiteLevel | OutputWhiteLevel |
|---|---|---|---|---|
| SDR/WCG | UINT8 | Qualquer | N/A | N/A |
| SDR/WCG | FP16 | SDR/WCG | N/A | N/A |
| SDR/WCG | FP16 | HDR | SDRWhite | 80 |
| HDR | Qualquer | SDR/WCG | 80 | DXGI_OUTPUT_DESC1::MaxLuminance |
| HDR | UINT8 | HDR | 80 | SDRWhite |
| HDR | FP16 | HDR | N/A | N/A |
Na tabela, o valor 80 é o nível branco de referência, em nits, para conteúdo sRGB ou scRGB. Para isso, você pode usar a constante D2D1_SCENE_REFERRED_SDR_WHITE_LEVEL, que é definida em d2d1effects_2.h. O valor SDRWhite é o número de nits que a exibição deve usar para exibir conteúdo sRGB branco. Você pode recuperar esse valor acessando a propriedadeAdvancedColorInfo.SdrWhiteLevelInNits. O valor N/A significa que o ajuste de nível branco não é usado neste cenário; você pode remover o efeito do grafo ou definir valores para um no-op.
Observe que, nos casos em que um ajuste de nível branco não é necessário para o aplicativo, o DWM ou o display podem estar tratando a conversão do espaço de luminância referenciado por exibição para o espaço de luminância referenciado pela cena.
- No modo SDR/WCG, a conversão ocorre após a composição do DWM e se aplica a todo o conteúdo apresentado a essa exibição. A exibição executa implicitamente essa conversão.
- No modo HDR, a conversão é executada automaticamente pelo DWM antes da composição, desde que a superfície de composição do aplicativo seja SDR.
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo com suporte | Windows 10, versão 1809 (10.0; Build 17763) [aplicativos da área de trabalho | Aplicativos UWP] |
| Cabeçalho | d2d1effects_2.h |
| Biblioteca | d2d1.lib, dxguid.lib |
Tópicos relacionados
- da interface ID2D1Effect
- D2D1_WHITELEVELADJUSTMENT_PROP de enumeração