HDR(High Dynamic Range)은 SDR(Standard Dynamic Range)보다 광도 다이나믹 레인지가 더 큰 이미지를 생성하는 기술로, 컬러와 밝기를 사실적으로 묘사할 수 있습니다.
표준 렌더링에서 픽셀의 빨간색, 녹색, 파란색 값은 0과 1 사이의 8비트 값을 사용하여 저장됩니다. 여기서 0은 0의 강도를 나타내고, 1은 디스플레이 기기의 최대 강도를 나타냅니다. 이러한 제한된 값 범위는 현실에서 광원을 인식하는 방식을 정확하게 반영하지 못하며, 매우 밝거나 매우 어두운 요소가 있을 때 이미지가 비현실적으로 변할 수 있습니다.
HDR 렌더링에서 픽셀 값은 부동 소수점 숫자를 사용하여 저장됩니다. 이 방식은 훨씬 더 넓은 범위의 값을 허용하므로 인간의 눈이 컬러와 밝기를 인식하는 방식을 더욱 정확하게 반영합니다.
Unity에서는 내부 렌더링 계산에 HDR 이미지를 사용할 수 있습니다. 이 기능을 HDR 렌더링이라고 합니다. HDR 렌더링이 활성화되면 Unity는 씬을 HDR 이미지 버퍼로 렌더링하고, 해당 HDR 이미지를 사용하여 포스트 프로세싱 효과와 같은 렌더링 작업을 수행합니다. 즉 실제 값을 사용하여 계산을 수행하므로 더욱 사실적인 결과를 얻을 수 있습니다.
특정 호환 가능 플랫폼에서 Unity는 이러한 HDR 이미지를 디스플레이 기기로 보낼 수 있도록 지원합니다. 이 기능을 HDR 출력이라고 합니다.
HDR 사용의 장점
HDR 사용의 단점
렌더 파이프라인 | HDR 렌더링 | HDR 출력 |
---|---|---|
빌트인 렌더 파이프라인 | 예 인스펙터에서 또는 Camera.allowHDR API를 사용하여 카메라별 HDR 렌더링을 활성화합니다. HDR 렌더링을 활성화하고 그래픽스 설정 창에서 각 티어에 대한 HDR 버퍼의 포맷을 설정합니다. |
예 HDROutputSettings API를 사용하여 HDR 출력 옵션을 설정합니다. 자세한 내용은 플랫폼별 문서를 참조하십시오. |
유니버설 렌더 파이프라인(URP) | 예 인스펙터에서 또는 Camera.allowHDR API를 사용하여 카메라별 HDR 렌더링을 활성화합니다. 유니버설 렌더 파이프라인 에셋을 사용하여 모든 카메라에 대해 HDR 렌더링을 활성화합니다. |
연구 중 개발 팀이 이 기능을 구현하는 방법을 연구하고 있습니다. 릴리스 날짜는 미정입니다. |
고해상도 렌더 파이프라인(HDRP) | 예 HDR 렌더링은 기본적으로 모든 카메라에 대해 활성화되며, 비활성화할 수 없습니다. |
연구 중 개발 팀이 이 기능을 구현하는 방법을 연구하고 있습니다. 릴리스 날짜는 미정입니다. |
톤 매핑은 한 범위에서 다른 범위로 컬러 값을 매핑하는 프로세스입니다. HDR 작업 시 톤 매핑을 사용하여 HDR 이미지 버퍼의 컬러를 전환하여 값이 디스플레이 기기에서 처리할 수 있는 범위 내에 있도록 해야 합니다. 톤 매핑을 사용하지 않으면 매우 밝은 영역에서 이미지의 디테일 및 컬러 정보가 대부분 손실될 수 있습니다.
HDR 렌더링을 SDR 출력과 함께 사용하는 경우 톤 매핑을 사용하여 HDR 이미지 버퍼를 디스플레이용 SDR 이미지로 전환해야 합니다. Unity는 이러한 작업을 수행할 수 있도록 톤 매핑 포스트 프로세싱 효과를 제공합니다. 포스트 프로세싱 스택 V2 패키지, URP 통합 포스트 프로세싱 솔루션, HDRP 통합 포스트 프로세싱 솔루션에는 모두 톤 매핑 효과가 포함되어 있습니다.
HDR 렌더링을 HDR 출력과 함께 사용하면 다음 중 하나를 수행할 수 있습니다.
포워드 렌더링 경로에서 카메라는 카메라에 포스트 프로세싱 효과가 있는 경우에만 HDR을 지원합니다. 이는 성능 고려 사항 때문입니다. 카메라에 포스트 프로세싱 효과가 없으면 씬은 HDR이 지원되지 않는 백 버퍼로 직접 렌더링됩니다.
디퍼드 셰이딩 렌더링 경로에서 HDR이 카메라에 대해 활성화되지 않으면 라이팅 버퍼도 부동 소수점 버퍼로 할당됩니다. 이렇게 하면 라이팅 버퍼의 밴딩 현상이 줄어듭니다.