QRhiSwapChainHdrInfo Struct

스왑체인 관련 출력의 하이 다이내믹 레인지 관련 정보를 설명합니다. 더 보기...

헤더: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
이후: Qt 6.6

공용 형

enum LimitsType { LuminanceInNits, ColorComponentValue }
enum LuminanceBehavior { SceneReferred, DisplayReferred }

공용 변수

union QRhiSwapChainHdrInfo::(unnamed union at /data/snapshot-qt6-6.8-rel/qt5/qtbase/src/gui/rhi/qrhi.h:1524:5) limits
QRhiSwapChainHdrInfo::LimitsType limitsType
QRhiSwapChainHdrInfo::LuminanceBehavior luminanceBehavior
float sdrWhiteLevel

상세 설명

목표 범위가 [0,1]이 아닌 HDR 호환 톤 매핑을 수행하려면 스왑체인의 창이 연결된 디스플레이의 최대 휘도를 알아야 하는 경우가 많습니다. 이는 종종 사용자가 구성할 수 있지만(게임에서 밝기, 감마 및 이와 유사한 설정을 생각해보세요), 디스플레이 자체에서 보고하는 값을 기반으로 기본값을 설정하는 것이 매우 유용할 수 있으므로 적절한 시작점을 제공할 수 있습니다.

그러나 몇 가지 문제가 있습니다. 플랫폼마다 정보가 다른 형태로 노출되는 반면, 크로스 플랫폼 그래픽 API의 경우 이러한 정보를 관리하는 것이 API의 범위에 속하지 않기 때문에 관련 솔루션이 전혀 없는 경우가 많습니다(오히려 다른 플랫폼별 수단을 통해 검색할 수 있는 경우도 있음).

macOS/iOS의 Metal에서는 플랫폼 API에 휘도 값이 노출되지 않습니다. 대신 비 HDR 설정에서 1.0이 되는 최대 색상 구성 요소 값이 제공됩니다. limitsType 필드는 어떤 종류의 정보를 사용할 수 있는지를 나타냅니다. 그런 다음 limits 유니온에서 올바른 데이터에 액세스하여 적절하게 사용하는 것은 QRhi 의 클라이언트에게 달려 있습니다.

이러한 정보를 얻을 수 있는 방법이 없는 Vulkan과 같은 API에서는 항상 기본값이 기본값으로 제공됩니다.

따라서 QRhiSwapChain::hdrInfo()에서 반환되는 구조체에는 하드코딩된 기본값 또는 DXGI(IDXGIOutput6) 또는 Cocoa(NSScreen)와 같은 API에서 받은 실제 값이 포함됩니다. 플랫폼 쿼리를 사용할 수 없거나 QRhi 의 범위를 벗어난 플랫폼 기능을 사용해야 하는 경우 하드코딩된 기본값은 최대 휘도 1000니트 및 SDR 화이트 레벨 200입니다.

또한 이 구조체는 플랫폼과 컴포지터의 추정 휘도 동작을 노출하여 HDR 컬러 버퍼에서 1.0의 컬러 컴포넌트 값이 무엇으로 취급되는지를 나타냅니다. 경우에 따라 HDR 콘텐츠와 합성된 비 HDR 콘텐츠의 색 보정을 수행해야 할 수 있습니다. 이를 위해 일부 플랫폼(Windows)에서는 시스템에서 SDR 화이트 레벨을 쿼리하여 여기에 노출합니다.

참고: 이 API는 호환성이 제한적으로 보장되는 RHI API이며 자세한 내용은 QRhi 을 참조하세요.

QRhiSwapChain::hdrInfo()도 참조하세요 .

회원 유형 문서

enum QRhiSwapChainHdrInfo::LimitsType

상수설명
QRhiSwapChainHdrInfo::LuminanceInNits0limits 유니온에 luminanceInNits 구조 집합이 있음을 나타냅니다.
QRhiSwapChainHdrInfo::ColorComponentValue1limits 유니온에 colorComponentValue 구조체 집합이 있음을 나타냅니다.

enum QRhiSwapChainHdrInfo::LuminanceBehavior

상수설명
QRhiSwapChainHdrInfo::SceneReferred0색상 값 1.0이 80니트로 해석됨을 나타냅니다. 이는 Windows 컴포저를 사용하는 HDR 지원 창의 동작입니다. Windows의 HDR에 대한 자세한 내용은 이 페이지를 참조하세요.
QRhiSwapChainHdrInfo::DisplayReferred1색상 값 1.0이 SDR 흰색 값으로 해석됨을 나타냅니다. (예를 들어 200니트일 수 있지만 화면 밝기에 따라 달라질 수 있음) Apple 플랫폼에서 HDR이 활성화된 창의 동작입니다. Apple의 EDR 시스템에 대한 자세한 내용은 이 페이지를 참조하세요.

멤버 변수 문서

union QRhiSwapChainHdrInfo::(unnamed union at /data/snapshot-qt6-6.8-rel/qt5/qtbase/src/gui/rhi/qrhi.h:1524:5) QRhiSwapChainHdrInfo::limits

그래픽 API 또는 플랫폼에서 쿼리한 실제 값을 포함합니다. 데이터 유형은 limitsType 로 표시됩니다. 따라서 이것은 유니온입니다. 현재 두 가지 옵션이 있습니다:

휘도 값(니트 단위):

struct {
    float minLuminance;
    float maxLuminance;
} luminanceInNits;

Windows에서 최소 및 최대 휘도는 화면 밝기에 따라 달라집니다. 데스크톱에서는 관련이 없지만 노트북에서는 화면 밝기가 언제든지 변경될 수 있습니다. 밝기가 증가하면 최대 휘도가 감소합니다. 또한 Windows 설정의 시스템/디스플레이/HDR 보기에 설정된 HDR 콘텐츠 밝기(해당 설정이 있는 경우)에 따라 결과가 달라질 수도 있습니다.

그러나 애플리케이션이 실행되는 동안 노트북 화면의 밝기나 시스템 설정의 변경 사항이 반드시 반환된 값에 반영되는 것은 아니므로, hdrInfo()를 다시 호출해도 나머지 프로세스 수명 기간 동안 이전과 동일한 휘도 범위가 반환될 수 있다는 점에 유의하세요. 정확한 동작은 DXGI에 달려 있으며 Qt는 이를 제어할 수 없습니다.

참고: Windows 컴포지터는 HDR 콘텐츠의 경우 장면 참조 모드에서 작동합니다. 컬러 컴포넌트 값 1.0은 80니트의 휘도에 해당합니다. 비 HDR 콘텐츠(예: 2D UI 요소)를 렌더링할 때는 화이트 레벨을 보정해야 하는 경우가 많습니다. (예: 조각 색상(1, 1, 1)을 출력하면 화면에 너무 희미한 흰색 음영이 표시될 수 있습니다.) sdrWhiteLevel 을 참조하세요.

macOS/iOS의 경우 현재 최대 및 잠재적 최대 색상 구성 요소 값이 제공됩니다:

struct {
    float maxColorComponentValue;
    float maxPotentialColorComponentValue;
} colorComponentValue;

이 값은 화면 밝기에 따라 달라질 수 있으며, 랩톱의 경우 그 사이에 밝기가 변경된 경우 다음 번에 hdrInfo()를 호출할 때 결과가 변경될 수 있음을 의미합니다. 최대 화면 밝기는 최대 색상 값 1.0을 의미합니다.

참고: Apple의 EDR은 디스플레이 기준입니다. 1.0은 SDR 흰색의 휘도 수준(예: 200니트)에 해당하며, 이 값은 화면 밝기 및 기타 설정에 따라 달라질 수 있습니다. 이에 대한 정확한 휘도 값 또는 디스플레이의 최대 휘도는 애플리케이션에 노출되지 않습니다.

참고: 일부 macOS 시스템에서 시작 시 색상 구성 요소 값이 1보다 큰 올바른 값으로 바로 설정되지 않고 첫 번째 프레임 도중 또는 이후에 값이 변경되는 경향이 있는 것으로 관찰되었습니다.

QRhiSwapChain::hdrInfo()도 참조하세요 .

QRhiSwapChainHdrInfo::LimitsType QRhiSwapChainHdrInfo::limitsType

macOS/iOS의 Metal에서는 플랫폼 API에 휘도 값이 노출되지 않습니다. 대신 비 HDR 설정에서는 1.0이 되는 최대 색 구성 요소 값이 제공됩니다. 이 값은 limits 에서 어떤 종류의 정보를 사용할 수 있는지를 나타냅니다.

QRhiSwapChain::hdrInfo()도 참조하세요 .

QRhiSwapChainHdrInfo::LuminanceBehavior QRhiSwapChainHdrInfo::luminanceBehavior

색상 값과 관련하여 플랫폼의 예상 동작을 설명합니다.

sdrWhiteLevel참조하세요 .

float QRhiSwapChainHdrInfo::sdrWhiteLevel

Windows에서는 니트 단위의 동적 SDR 화이트 레벨입니다. 이 값은 화면 밝기(랩톱의 경우)와 Windows 설정의 시스템/디스플레이/HDR 보기에서 SDR 또는 HDR 콘텐츠 밝기 설정에 따라 달라집니다.

2D UI 요소와 같은 비 HDR(SDR) 콘텐츠에 대해 화이트 레벨 보정을 수행하려면 luminanceBehaviorSceneReferred 일 때마다 최종 색에 sdrWhiteLevel / 80.0을 곱합니다(Windows 및 선형 확장 sRGB(scRGB) 색 공간 가정).

다른 플랫폼에서는 이 값이 항상 사전 정의된 값인 200입니다. 이 값은 시스템의 실제 SDR 흰색 수준과 일치하지 않을 수 있지만 luminanceBehaviorDisplayReferred 일 때는 기본적으로 1.0의 색상 구성 요소 값이 SDR 흰색을 참조하므로 이 변수 값은 실제로는 관련이 없습니다.

luminanceBehavior참조하세요 .

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.