하이 다이내믹 레인지 디스플레이 출력

HDR Display Output 및 그 옵션에 대한 개요입니다.

Choose your operating system:

Windows

macOS

Linux

언리얼 엔진 4 에서는 이제 더욱 높은 대비값과 폭넓은 색 공간(color gamut)을 활용할 수 있는 하이 다이내믹 레인지 (HDR) 디스플레이로 출력할 수 있습니다. 이 글의 목표는 디스플레이되는 이미지에 "현실 세계"에서 느낄 수 있는 보다 자연스러운 라이팅 조건과 같은 특성을 낼 수 있도록 하는 것입니다. 이는 Academy Color Encoding System (ACES) 표준으로 넘어가기 위한 과정 중의 하나로, 이를 통해 여러 포맷과 디스플레이에 걸쳐 일관된 색 보존이 가능하며, 소스 머티리얼을 별다른 수정 없이 다른 미디어에도 사용할 수 있도록 하는 미래 경쟁력 확보 차원의 방편이기도 합니다.

로우 다이내믹 레인지 (LDR)

다이 다이내믹 레인지 (HDR)

이는 순전히 데모용 시뮬레이션 이미지입니다. LDR 화면에 HDR 차이를 나타내는 것은 불가능합니다.

현재 구현을 통해서는, 렌더링된 씬의 전체 처리는 ACES Viewing Transform 이라 알려진 방식을 통해 처리합니다. 이 프로세스 작동방식은 씬 참조 이미지와 디스플레이 참조 이미지를 사용하는 것입니다.

  • Scene-referred (씬 참조) 이미지는 노출 범위 제한 없이 소스 머티리얼의 원본 리니어 라이트 값을 유지합니다.

  • Display-referred (디스플레이 참조) 이미지는 사용중인 디스플레이의 컬러 스페이스로 변형된 최종 이미지입니다.

이 파이프라인을 사용하면, 다른 디스플레이를 사용할 때마다 올바른 컬러 스페이스를 사용하도록 원본 소스 파일을 매번 수정할 필요가 없습니다. 대신 출력중인 디스플레이가 올바른 컬러 스페이스에 매핑되도록 해주면 됩니다.

ACES Viewing Transform 은 뷰 파이프라인에서 다음과 같은 방식으로 작동합니다:

  • Look Modification Transform (LMT) - 프로세스 이 부분은 창의적 "외형" (컬러 그레이딩 및 보정)을 적용시킨 ACES 컬러 인코딩된 이미지를 받은 뒤, ACES 로 렌더링된 이미지를 출력합니다. 여기에는 Reference Rendering Transform (RRT) 와 Output Device Transform (ODT) 가 조합됩니다.

  • Reference Rendering Transform (RRT) - 그리고서 이 부분은 씬 참조 컬러 값을 받아 디스플레이 참조 값으로 변환합니다. 이 과정에서 렌더링된 이미지가 특정 디스플레이에만 의존하도록 하는 대신, 아직 생성되지 않은 디스플레이를 포함해서 출력 대상 디스플레이에 맞도록 더 큰 색 공간과 다이내믹 레인지를 갖도록 합니다.

  • Output Device Transform (ODT) - 마지막으로 이 단계에서는 RRT 의 HDR 데이터 출력을 받은 뒤 다양한 디바이스와 거기서 디스플레이 가능한 컬러 스페이스에 일치시킵니다. 이 때문에, 각 타깃은 일치시킬 별도의 ODT 가 필요합니다 (예: Rec709, Rec2020, DCI-P3, 등).

ACES Viewing Transform 관련 부가 정보는 ACES GitHub 에서 PDF 문서를 다운로드해 보시거나, 이 글의 참고 자료 부분에 있는 링크를 따라가시기 바랍니다.

HDR 출력 활성화

HDR 출력은 런타임에 콘솔 변수 토글 또는 블루프린트의 GameUserSettings 노드를 통해 활성화시킬 수 있습니다.

HDRGameUserSettings.png

GameUserSettings 컨트롤은 현재 출력 디바이스에 맞는 가장 가까운 값으로 자동 클램프시키고 모든 플래그도 적절히 설정해 줍니다. 다른 방법으로는, 다음 콘솔 변수를 통해 HDR 디바이스와 필요한 색 공간 출력에 맞는 옵션을 활성화시키고 변경해도 됩니다.

콘솔 변수

설명

r.HDR.EnableHDROutput

1 로 설정하면, 스왑 체인을 재생성하고 HDR 출력을 활성화시킵니다.

r.HDR.Display.OutputDevice

출력 디스플레이의 디바이스 포맷입니다.

0

sRGB (LDR) (기본)

1

Rec709 (LDR)

2

명시적 감마 매핑 (LDR)

3

ACES 1000-nit ST-2084 (Dolby PQ) (HDR)

4

ACES 2000-nit ST-2084 (Dolby PQ) (HDR)

5

ACES 1000-nit ScRGB (HDR)

6

ACES 2000-nit ScRGB (HDR)

r.HDR.Display.ColorGamut

출력 디스플레이의 색 공간입니다.

0

Rec709 / sRGB, D65 (기본)

1

DCI-P3, D65

2

Rec2020 / BT2020, D65

3

ACES, D60

4

ACEScg, D60

GameUserSettings 에 대한 블루프린트 또는 C++ 호출을 구성한 이후에는, 쿠킹된 프로젝트 실행, 명령줄 인수 -game mode 사용, 독립형 게임 모드 사용, 새 창에서 독점 전체화면 에디터에서 플레이 (PIE) 등을 실행하면 됩니다 ( Alt + Enter 또는 콘솔 창에 fullscreen 명령 사용).

테두리 없는 창 또는 창 모드는 현재 HDR 출력에 작동하지 않습니다.

HDR 에서 로우 다이내믹 레인지 (LDR) UI 지원

이 기능은 실험단계 기능이며, 앞으로 변경될 수 있습니다.

HDR 출력이 활성화되면 유저 인터페이스(UI)가 올바르게 보이지 않을 수 있습니다. 그래서 LDR UI 합성을 위한 실험단계 기능 지원을 추가했습니다. LDR 모양에 가급적 비슷하게 일치하도록 시도하기는 하지만, 메인 씬의 활기로 인해 탈색되어 보이는 현상을 방지하기 위해서는 UI 를 약간 증폭시켜 주는 것이 좋습니다.

그 방법은 다음 콘솔 변수를 사용하면 됩니다:

콘솔 변수

설명

r.HDR.UI.CompositeMode

1 로 설정하면 HDR UI 합성을 활성화시켜, LDR 비주얼과 블렌딩 보존을 시도합니다.

r.HDR.UI.Level

합성된 UI 밝기를 조절합니다. 1.5 나 2 정도 값을 추천합니다.

HDR 하드웨어 및 셋업 고려사항

여러가지 다양한 디스플레이 및 TV 유형에다 콘솔 및 PC 고려사항과 맞물려서 생각해 보면, HDR 출력의 정상 작동을 위해서는 세팅을 변경하거나 특정 하드웨어 부품을 사용해야 할 수도 있습니다. 다음은 셋업 프로세스를 거치는 도중 고려할 것들 몇 가지입니다.

  • 빠른 전송 속도를 위해서는 시스템과 HDR 디스플레이가 고속 HDMI 2.0 케이블로 연결되어있는지 확인합니다 (HDMI 1.4 도 작동은 합니다만, 콘텐츠 표시에 문제가 있을 수 있습니다). 모든 HDMI 포트가 HDMI 2.0 및 HDR 을 받지 않을 수도 있습니다. 확실치 않으면 디스플레이 매뉴얼을 참고하세요.

  • TV 포트가 HDR 활성화된 것인지 확인하세요. 가끔 TV 나 디스플레이 세팅에 "HDMI Deep Color" 또는 "Enhanced Format" 이라고 표시되어 있을 수 있습니다. 확실치 않으면 디스플레이 매뉴얼을 참고하세요.

  • PS4 와 같은 몇몇 콘솔에서는 HDR 출력의 정상 작동을 위해서는 Enable HDCP 시스템 세팅을 꺼줘야 할 수도 있습니다.

  • 일부 디스플레이의 경우, 올바른 출력을 위해서는 디스플레이 세팅을 조정해야 할 수 있습니다.

    • NVIDIA GPU 의 경우 NVIDIA Control Panel 을 사용하여 디스플레이 해상도 Output Color Format 이 RGB 를 사용하고, Output Color Depth 가 10-bit 또는 12-bit 를 사용하도록 조절하세요. 하드웨어에 따라 사용할 수 없는 옵션이 있을 수 있습니다. 확실치 않은 경우 디스플레이 매뉴얼을 참고하세요.

      클릭하면 원본 이미지를 확인합니다.

참고 및 한계

  • 기본적으로 필름 매핑 커브는 LDR 컨트롤의 조악한 호환성으로 인해 HDR 출력 도중에는 비활성화됩니다.

  • 현재 1000-nit 및 2000-nit 디스플레이 출력에 대한 패스만 구현되어 있습니다.

  • D3D11 제약으로 인해 HDR 출력은 전체화면 전용으로만 제한됩니다. Windows 10 의 D3D12 지원을 통해 이 부분은 HDR 출력에 개별 뷰포트가 가능하도록 확장될 수도 있습니다. Mac 에서는 현재 이미 이 구현이 지원되고 있습니다.

참고 자료

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기