흰색 수준 조정 효과

이 효과를 사용하면 이미지의 흰색 수준을 선형으로 조정할 수 있습니다. 이는 디스플레이 참조 광도 공간과 장면 참조 광도 공간 간에 변환하거나 그 반대로 변환할 때 특히 유용합니다.

이 효과의 속성은 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라고도 함)을 수행하며, 이 경우 애플리케이션을 간소화합니다. 그럼에도 불구하고 자동 승격은 애플리케이션이 콘텐츠를 표시하는 데 사용하는 컴퍼지션 형식에 따라 한 광도 공간에서 다른 광도 공간으로 변환하는 애플리케이션의 역할을 의미합니다.

아래 표에서는 애플리케이션이 흰색 수준 조정을 수행해야 하고 수행해서는 안 되는 경우와 조정해야 하는 사항에 대해 설명합니다. 일반적으로 조정은 세 가지 요인에 따라 달라집니다.

  1. 입력 콘텐츠 색 영역입니다. 입력 콘텐츠에 HDR(높은 동적 범위) 광도 값이 포함되어 있는지 여부입니다. WCG 콘텐츠는 광도 동작에 대해 SDR과 동일하게 동작합니다.
  2. 컴퍼지션 형식입니다. DWM에 표시되는 대상 표면의 픽셀 형식(예: 스왑 체인 또는 컴퍼지션 표면)입니다. Direct2D를 사용하여 렌더링할 때 UINT8 또는 FP16입니다.
  3. 데스크톱 고급 색 모드. 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