HDR(High Dynamic Range) 출력
HDR(High Dynamic Range) 콘텐츠는 일반 화질 콘텐츠보다 색 영역과 밝기 범위가 더 넓습니다.
URP는 그러한 기능을 지원하는 디스플레이에 HDR 콘텐츠를 출력할 수 있습니다.
HDR 출력을 활성화하는 방법
HDR 출력을 활성화하려면 다음 단계를 따르십시오.
- 프로젝트 창의 Assets > Settings에서 URP 에셋을 찾습니다.
- Quality > HDR로 이동한 후 HDR을 활성화하는 체크박스를 선택합니다.
Edit > Project Settings > Player > Other Settings로 이동하여 다음 설정을 활성화합니다.
- Allow HDR Display Output
- Use HDR Display Output
참고: 메인 디스플레이에서 HDR 출력을 사용해야 하는 경우에만 Use HDR Display Output을 활성화하십시오.
HDR이 활성화되지 않은 URP 에셋으로 전환하면 HDR이 활성화된 URP 에셋으로 변경할 때까지 URP는 HDR 출력을 비활성화합니다.
참고: HDR 출력이 활성 상태이면 URP 에셋에 다른 컬러 그레이딩 모드가 활성화되어 있어도 그레이딩 모드가 HDR로 폴백됩니다.
URP의 HDR 톤 매핑
Allow HDR Display Output을 활성화한 후에는 HDR 입력을 위한 톤 매핑 설정을 지정해야 합니다.
이 설정을 효과적으로 지정하려면 톤 매핑과 관련된 특정 값이 HDR 출력의 시각적 특성을 결정하는 방식을 이해해야 합니다.
중요한 톤 매핑 값
HDR 디스플레이의 기능을 제대로 활용하려면 톤 매핑 설정에서 타겟 디스플레이의 기능, 특히 다음의 세 가지 값(니트 단위)을 고려해야 합니다.
- 최소 지원 밝기.
- 최대 지원 밝기.
- Paper White 값: 이 값은 디스플레이에 표시되는 종이처럼 하얀 표면의 밝기를 나타내며, 디스플레이의 전체 밝기를 결정합니다.
참고: LDR(Low Dynamic Range) 및 HDR(High Dynamic Range)는 Paper White 값이 동일한 디스플레이에서 똑같이 밝게 표시되지 않습니다. 이는 디스플레이가 LDR(Low Dynamic Range) 콘텐츠에 추가 처리를 적용하여 밝기 수준을 높이기 때문입니다. 이러한 이유로 애플리케이션에 보정 메뉴를 구현하는 것이 좋습니다.
정확한 Paper White 값에 따라 사용 가능한 사용자 인터페이스가 다름
언릿 머티리얼은 조명 변화에 반응하지 않으므로 사용자 인터페이스에는 언릿 머티리얼을 사용하는 것이 일반적입니다. HDR 디스플레이를 특별히 대상으로 하지 않는 경우 언릿 머티리얼 렌더링에 대한 계산은 0-1 범위의 값으로 밝기를 정의합니다. 여기서 값이 1이면 흰색을 의미하고 값이 0이면 검은색을 의미합니다.
하지만 HDR 모드에서 URP는 Paper White 값을 사용하여 언릿 머티리얼의 밝기를 결정합니다. 이는 HDR 값이 0-1 범위를 초과할 수 있기 때문입니다.
그 결과, Paper White 값은 HDR 모드에서 UI 요소의 밝기, 특히 밝기가 Paper White 값과 일치하는 흰색 요소의 밝기를 결정합니다.
HDR 톤 매핑 설정 구성
Volume 컴포넌트 설정에서 톤 매핑 모드를 선택하고 조정할 수 있습니다. 또한 스크립트를 사용하여 HDR 톤 매핑 설정의 일부를 조정할 수도 있습니다(HDROutputSettings API 참조).
Allow HDR Display Output을 활성화하면 HDR 톤 매핑 옵션이 Volume 컴포넌트에 표시됩니다.
톤 매핑 모드
URP는 두 가지 톤 매핑 모드, 즉 Neutral 및 ACES 모드를 제공합니다. 각 톤 매핑 모드에는 몇 가지 고유한 프로퍼티가 있습니다.
- Neutral 모드는 톤 매퍼가 콘텐츠에 컬러 그레이딩을 수행하지 않도록 하려는 경우에 특히 적합합니다.
- ACES 모드는 장편 영화용 ACES 레퍼런스 색 공간을 사용합니다. 영화 같이 콘트라스트가 큰 결과물을 제공합니다.
Neutral
프로퍼티 | 설명 |
---|---|
Neutral HDR Range Reduction Mode | 플레이어가 톤 매핑에 사용하는 커브입니다. 사용할 수 있는 옵션은 다음과 같습니다.
|
Hue Shift Amount | 이 값은 HDR 설정을 적용한 후 콘텐츠가 원본 색조를 유지하는 정도를 결정합니다. 이 값이 0이면 톤 매퍼는 밝기에만 톤 매핑을 수행하여 콘텐츠의 색조를 최대한 유지하려고 시도합니다. |
Detect Paper White | URP가 디스플레이가 Unity 엔진과 통신하는 Paper White 값을 사용하도록 하려면 이 프로퍼티를 활성화하십시오. 경우에 따라서는 디스플레이가 통신하는 값이 정확하지 않을 수 있습니다. 부정확한 값을 통신하는 디스플레이에서 사용자가 콘텐츠를 올바르게 표시할 수 있도록 애플리케이션에 보정 메뉴를 구현하십시오. |
Paper White | 디스플레이의 Paper White 값입니다. Detect Paper White를 활성화하지 않은 경우 여기에서 값을 지정해야 합니다. |
Detect Brightness Limits | URP가 디스플레이가 통신하는 최소 및 최대 니트 값을 사용하도록 하려면 이 프로퍼티를 활성화하십시오. 경우에 따라서는 디스플레이가 통신하는 값이 정확하지 않을 수 있습니다. 이러한 상황에 대비하여 애플리케이션에 보정 메뉴를 구현하는 것이 좋습니다. |
Min Nits | 디스플레이의 최소 밝기 값입니다. Detect Brightness Limitse를 활성화하지 않은 경우 여기와 Max Nits에서 값을 지정해야 합니다. |
Max Nits | 디스플레이의 최대 밝기 값입니다. Detect Brightness Limitse를 활성화하지 않은 경우 여기와 Min Nits에서 값을 지정해야 합니다. |
Hue Shift Amount 남용
크리에이터는 Hue Shift Amount를 사용하여 특수 효과를 만들려는 의도로 콘텐츠를 제작할 수 있습니다. 아래 그림에서 Hue Shift Amount는 이미지 A에서 0이고 이미지 B에서 1입니다. Hue Shift 효과로 인해 불꽃 이미지 B가 더 강렬하게 보입니다. 이러한 방식으로 콘텐츠를 제작하지 않는 것이 좋습니다. 특수 효과에 최적화된 설정은 씬의 다른 콘텐츠에 바람직하지 않은 영향을 미칠 수 있습니다.
이미지 A: Hue Shift Amount가 0일 때 출력.이미지 B: Hue Shift Amount가 1일 때 출력.
ACES
이 모드에는 1000니트, 2000니트, 4000니트 디스플레이를 대상으로 하는 고정 프리셋이 있습니다. 사용자가 올바른 프리셋을 선택할 수 있도록 애플리케이션에 보정 메뉴를 구현하는 것이 좋습니다.
프로퍼티 | 설명 |
---|---|
ACES Preset | 사용할 톤 매퍼 프리셋입니다. 사용할 수 있는 옵션은 다음과 같습니다.
|
Detect Paper White | URP가 디스플레이가 Unity 엔진과 통신하는 Paper White 값을 사용하도록 하려면 이 프로퍼티를 활성화하십시오. 경우에 따라서는 디스플레이가 통신하는 값이 정확하지 않을 수 있습니다. 부정확한 값을 통신하는 디스플레이에서 사용자가 콘텐츠를 올바르게 표시할 수 있도록 애플리케이션에 보정 메뉴를 구현하십시오. |
Paper White | 디스플레이의 Paper White 값입니다. Detect Paper White를 활성화하지 않은 경우 여기에서 값을 지정해야 합니다. |
HDROutputSettings API
HDROutputSettings API를 사용하면 HDR 모드를 활성화 및 비활성화하고 특정 값(예: Paper White)을 쿼리할 수 있습니다.
오프스크린 렌더링
오프스크린 렌더링 기술을 사용하면 씬의 일부 카메라가 디스플레이에 직접 출력되지 않습니다. Unity가 출력을 렌더 텍스처로 렌더링하는 경우를 예로 들 수 있습니다. 이러한 상황에서는 포스트 프로세싱을 렌더링하기 전에 카메라의 출력을 사용하십시오.
Unity는 오프스크린 렌더링 기법을 사용하는 카메라의 출력에는 HDR 출력 처리를 적용하지 않습니다. 이렇게 하면 HDR 출력 처리가 카메라의 출력에 두 번 적용되지 않습니다.
SDR 렌더링
HDR 출력은 HDR 렌더링을 사용하여 톤 매핑 및 컬러 인코딩에 적합한 포맷의 픽셀 값을 제공합니다. HDR 톤 매핑 후 값은 니트 단위이고 1을 초과합니다. 이는 픽셀 값이 0-1 범위인 SDR 렌더링과 다릅니다. 따라서 SDR 렌더링을 HDR 출력과 함께 사용하면 렌더링된 이미지가 노출 부족 또는 과채도 상태로 보일 수 있습니다.
HDR 출력을 활성화한 경우 카메라별 SDR 렌더링을 사용할 수 있는데, 이는 미니 맵 렌더링 같이 언릿 머티리얼만 렌더링하는 카메라에 유용할 수 있습니다. 하지만 SDR 렌더링을 HDR 출력과 함께 사용하면 몇 가지 제한 사항이 있습니다.
SDR 렌더링을 HDR 출력과 함께 사용할 때 올바른 렌더링을 보장하려면 포스트 프로세싱 후에 발생하는 모든 렌더 패스를 피해야 합니다. 여기에는 포스트 프로세싱 후 렌더 패스를 삽입하는 URP의 빌트인 효과가 포함됩니다. 이로 인해 HDR 출력을 사용하는 SDR 렌더링은 다음 기능과 호환되지 않습니다.
2D 렌더러
2D 렌더러에서 SDR 렌더링을 HDR 출력과 함께 사용하려면 포스트 프로세싱이 꺼져 있는지 확인해야 합니다.
HDR 디버그 뷰
URP는 HDR 렌더링을 위한 세 가지 디버그 뷰를 제공합니다. 디버그 뷰에 액세스하려면 Window > Analysis > Render Pipeline Debugger > Lighting > HDR Debug Mode로 이동하십시오.
색 영역 뷰
이 디버그 뷰의 삼각형은 이 씬이 세 가지 특정 색 영역 중 어느 부분에 해당하는지를 나타냅니다. 작은 삼각형은 Rec709 색 영역 값을 나타내고, 중간 크기의 삼각형은 P3-D65 색 영역 값을 나타내고, 큰 삼각형은 Rec2020 색 영역 값을 나타냅니다. 이를 통해 컬러 그레이딩 중 컬러 플롯의 변화를 확인할 수 있습니다. 또한 HDR에서 더 넓은 색 영역을 활용할 수도 있습니다.
색 영역 클립
이 디버그 뷰는 씬 값과 특정 색 영역 간의 관계를 나타냅니다. 값이 Rec709 색 영역 내에 있는 화면 영역은 녹색, 값이 Rec709 색 영역을 벗어나지만 P3-D65 색 영역 내에 있는 화면 영역은 파란색, 값이 두 색 영역을 모두 벗어난 화면 영역은 빨간색으로 표시됩니다.
Paper White 초과 값
이 디버그 뷰는 컬러 코드 그레디언트를 사용하여 씬에서 Paper White 값을 초과하는 부분을 표시합니다. 그레디언트 범위는 노란색에서 빨간색까지입니다. 노란색은 Paper White +1에 해당하고 빨간색은 Max Nits에 해당합니다.
플랫폼 호환성
URP는 다음 플랫폼에서만 HDR 출력을 지원합니다.
- DirectX 11, DirectX 12 또는 Vulkan이 설치된 Windows
- Metal이 설치된 MacOS
- 콘솔
- HDR을 지원하는 XR 기기
참고: DirectX 11은 플레이어의 HDR 출력만 지원하고, 에디터의 HDR 출력은 지원하지 않습니다.