흰색 수준 조정 효과
이 효과를 사용하면 이미지의 흰색 수준을 선형으로 조정할 수 있습니다. 이는 디스플레이 참조 광도 공간과 장면 참조 광도 공간 간에 변환하거나 그 반대로 변환할 때 특히 유용합니다.
이 효과의 속성은 D2D1_WHITELEVELADJUSTMENT_PROP 열거형으로 식별되며 CLSID는 CLSID_D2D1WhiteLevelAdjustment.
효과 속성
표시 이름 및 인덱스 열거형 | 형식 및 기본값 | 설명 |
---|---|---|
InputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_INPUT_WHITE_LEVEL | FLOAT | 입력 이미지의 흰색 수준(nits)입니다. |
OutputWhiteLevel, D2D1_WHITELEVELADJUSTMENT_PROP_OUTPUT_WHITE_LEVEL | FLOAT | 출력 이미지의 흰색 수준(nits)입니다. |
설명
이 효과는 적절한 색 관리 및 톤 매핑을 사용하여 Direct2D에서 HDR 이미지를 렌더링할 수 있도록 HDR 톤 맵 효과 와 결합하기 위한 것입니다. 자세한 내용은 해당 항목의 설명을 참조하세요 . 이 효과는 모든 Windows HDR 이미지 형식을 처리하고 디스플레이 기능(HDR 또는 WCG/SDR)에 맞게 조정되는 동급 최고의 HDR 이미지 보기 환경을 제공하려는 모든 프레임워크를 대상으로 합니다.
Windows에서 모든 SDR/WCG 콘텐츠는 디스플레이 참조 광도 공간에 있는 것으로 간주되므로 최종적으로 표시되기 전에 콘텐츠의 흰색 수준을 디스플레이의 흰색 수준으로 확장해야 합니다. 그러나 이 작업을 수행하는 것이 항상 애플리케이션의 책임은 아닙니다. 반면 HDR 콘텐츠는 장면 참조 광도 공간에 있는 것으로 간주되므로 궁극적으로 디스플레이의 흰색 수준에 맞게 크기를 조정해서는 안 됩니다. 즉, 애플리케이션이 HDR 콘텐츠를 렌더링할 때 일부 상황에서 크기 조정을 수행하여 이것이 순 결과인지 확인해야 할 수 있습니다.
Windows 데스크톱이 SDR 또는 WCG 모드인 경우 데스크톱은 디스플레이 참조 광도 공간에서 구성됩니다. 그러나 Windows 데스크톱이 HDR 모드인 경우 데스크톱 컴퍼지션은 장면 참조 광도 공간에서 발생합니다. 즉, DWM(데스크톱 창 관리자) 자체는 8비트 컴퍼지션 표면에 대해 광도 조정(종종 SDRBoost라고도 함)을 수행하며, 이 경우 애플리케이션을 간소화합니다. 그럼에도 불구하고 자동 승격은 애플리케이션이 콘텐츠를 표시하는 데 사용하는 컴퍼지션 형식에 따라 한 광도 공간에서 다른 광도 공간으로 변환하는 애플리케이션의 역할을 의미합니다.
아래 표에서는 애플리케이션이 흰색 수준 조정을 수행해야 하고 수행해서는 안 되는 경우와 조정해야 하는 사항에 대해 설명합니다. 일반적으로 조정은 세 가지 요인에 따라 달라집니다.
- 입력 콘텐츠 색 영역입니다. 입력 콘텐츠에 HDR(높은 동적 범위) 광도 값이 포함되어 있는지 여부입니다. WCG 콘텐츠는 광도 동작에 대해 SDR과 동일하게 동작합니다.
- 컴퍼지션 형식입니다. DWM에 표시되는 대상 표면의 픽셀 형식(예: 스왑 체인 또는 컴퍼지션 표면)입니다. Direct2D를 사용하여 렌더링할 때 UINT8 또는 FP16입니다.
- 데스크톱 고급 색 모드. DWM이 현재 디스플레이에 대해 SDR, WCG 또는 HDR 모드에서 실행 중인지 여부입니다. DXGI_OUTPUT_DESC1::ColorSpace 또는 AdvancedColorInfo.CurrentAdvancedColorKind를 통해 이 정보를 가져옵니다.
이러한 세 가지 요인에 따라 및 OutputWhiteLevel
속성에 대한 InputWhiteLevel
적절한 값을 설정해야 합니다.
입력 콘텐츠 | 컴퍼지션 형식 | 고급 색 모드 | InputWhiteLevel | OutputWhiteLevel |
---|---|---|---|---|
SDR/WCG | UINT8 | 모두 | 해당 없음 | 해당 없음 |
SDR/WCG | FP16 | SDR/WCG | 해당 없음 | 해당 없음 |
SDR/WCG | FP16 | Hdr | SDRWhite | 80 |
Hdr | 모두 | SDR/WCG | 80 | DXGI_OUTPUT_DESC1::MaxLuminance |
Hdr | UINT8 | Hdr | 80 | SDRWhite |
Hdr | FP16 | Hdr | 해당 없음 | 해당 없음 |
표에서 값 80은 sRGB 또는 scRGB 콘텐츠에 대한 참조 흰색 수준(nits)입니다. 이를 위해 에 정의된 d2d1effects_2.h
상수 D2D1_SCENE_REFERRED_SDR_WHITE_LEVEL 사용할 수 있습니다. 값 SDRWhite
은 디스플레이에서 흰색 sRGB 콘텐츠를 표시하는 데 사용해야 하는 nit의 수입니다.
AdvancedColorInfo.SdrWhiteLevelInNits 속성에 액세스하여 이 값을 검색할 수 있습니다. 값 N/A는 이 시나리오에서 흰색 수준 조정이 사용되지 않음을 의미합니다. 그래프에서 효과를 제거하거나 no-op 값을 설정할 수 있습니다.
애플리케이션에서 흰색 수준 조정이 필요하지 않은 경우 DWM 또는 디스플레이가 디스플레이 참조 광도 공간에서 장면 참조 광도 공간으로의 변환을 처리할 수 있습니다.
- SDR/WCG 모드에서 변환은 DWM 컴퍼지션 후에 발생하며 해당 디스플레이에 표시되는 모든 콘텐츠에 적용됩니다. 디스플레이는 암시적으로 이 변환을 수행합니다.
- HDR 모드에서 변환은 애플리케이션의 컴퍼지션 표면이 SDR인 한 컴퍼지션 전에 DWM에 의해 자동으로 수행됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10, 버전 1809(10.0; 빌드 17763) [데스크톱 앱 | UWP 앱] |
헤더 | d2d1effects_2.h |
라이브러리 | d2d1.lib, dxguid.lib |