API
HDR Color Picker

HDR(High Dynamic Range) 렌더링

일반 렌더링에서는, 픽셀의 빨강, 녹색, 파랑은 0에서 1사이의 소수에 의해 표현되며, 0은 강도 제로이며, 1은 디스플레이 장치의 최대 강도를 의미합니다. 이것이 사용하는 데에 간단한 반면, 실제 장면에서 조명의 역할을 정확하게 반영하지는 않습니다. 인간의 눈은 주변 조명에 맞추려고 하기 때문에, 만약 어둡게 조명된 방에서 하얗게 보이는 어떤 물체가 대낮의 밝은 빛에서 회색으로 보이는 물체보다 실제로는 밝지 않을 수 있습니다. 또한 눈은 범위의 낮은 쪽이 높은 쪽보다 밝기 차이에 민감합니다.

렌더링에서 픽셀 값의 범위를 보다 정확하게 실제 장면에 같은 빛의 수준에 반영되도록 조정하면 더 매력적인 효과를 얻을 수 있습니다. 비록 이러한 값은 궁극적으로 디스플레이 장치에서 사용 가능한 범위에 매핑을 되돌릴 필요가 있다고는 해도, 중간 연산 (Unity 이미지 효과 등)에 의해 실제에 가까운 결과를 얻을 수 있습니다. 그래픽의 내부 표현으로 0에서 1의 범위 외를 허용하는 것은 __High Dynamic Range (HDR) __ 렌더링 중요합니다.

HDR 작업

HDR은 카메라 컴포넌트의 설정을 사용하여 각 카메라에 대하여 별도로 활성화합니다:

HDR이 활성화되면, 씬(scene)은 픽셀을 0에서 1의 범위 밖의 픽셀 값들을 수용할 수 있는 HDR 이미지 버퍼에 렌더링됩니다. 다음 버퍼는 HDR 블룸과 이미지 효과를 사용하여 후 처리됩니다. 톤 매핑에서 이미지 효과에 의해 HDR 이미지를 표준의 low dynamic range (LDR) 이미지로 변환하여 표시됩니다. LDR로의 변환은 이미지 이펙트 파이프 라인의 어느 시점에선가 적용되어야 하지만, LDR전용 이미지 이펙트가 나중에 적용될 경우라면 그것이 마지막 단계일 필요는 없습니다. 편의를 위해, 몇몇 이미지 이펙트는 자동으로 HDR 효과를 적용한 후 LDR로 변환할 수 있습니다.(아래 스크립팅을 참조)

톤 매핑

톤 매핑은 HDR값을 LDR의 범위로 돌려놓는 매핑 처리입니다. 이에 대한 많은 각각 다른 테크닉들이 있으며, 어떤 프로젝트에서 괜찮은 테크닉이 다른 프로젝트에서는 최상이 아닐 수도 있습니다. Unity에는 다양하고 풍부한 톤 매핑 이미지 이펙트가 포함되어 있습니다. 이것을 사용하기 위해서는 Assets > Import Package > Effects을 선택하고, 씬의 카메라를 선택하고 Component > Image Effects >ToneMapping 를 선택합니다. 톤 매핑의 종류에 대한 자세한 설명은 image effects documentation.를 참조하십시오.

유난히 밝은 씬을 HDR 렌더링. 톤 매핑없이 대부분의 픽셀이 범위를 벗어나 보인다.
유난히 밝은 씬을 HDR 렌더링. 톤 매핑없이 대부분의 픽셀이 범위를 벗어나 보인다.
앞에서 말한 것과 같은 장면. 그러나 톤 매핑 효과에 의해 더 그럴듯 하게 보이게 한다. Adaptive 톤 매핑을 통해 이를 초과해 블렌드 할 수도 있어, 이 이미지는 캡처링 미디어(Capturing media)의 Adaptive 특성을 시뮬레이션합니다 (눈, 카메라).
앞에서 말한 것과 같은 장면. 그러나 톤 매핑 효과에 의해 더 그럴듯 하게 보이게 한다. Adaptive 톤 매핑을 통해 이를 초과해 블렌드 할 수도 있어, 이 이미지는 캡처링 미디어(Capturing media)의 Adaptive 특성을 시뮬레이션합니다 (눈, 카메라).

HDR 블룸(Bloom) 및 글로우(Glow)

HDR을 사용하면 후 처리를 더 세세하게 제어 할 수 있습니다. LDR 블룸은 부작용이 있어, 씬이 많은 영역에, 예를 들면 픽셀 강도가 1.0보다 작아도 블러를 적용합니다. HDR을 사용하여 강도가 1보다 큰 영역만을 블룸 할 수 있습니다. 따라서 보다 바람직한 결과로 이어져 씬의 매우 밝은 요소가 인접한 픽셀에 배어 나와 있습니다. 이 내장 ’블룸 및 렌즈 플레어(Lens Flares)’효과는 HDR도 지원합니다. 카메라에 연결하려면 Assets > Import Package > Effects를 선택하고 씬의 카메라를 선택하고 Component > Image Effects > Bloom을 선택합니다. ’블룸’효과에 대한 자세한 설명은 이미지 효과 문서을 참조하십시오.

차 창문의 태양의 반사는 1.0보다 훨씬 큰 강도 값입니다. 카메라 HDR을 사용하고 있으면 이 강도를 캡처할 수 있으므로, 블룸에서이 부분만을 감지하여 글로우 시킬 수 있습니다.
차 창문의 태양의 반사는 1.0보다 훨씬 큰 강도 값입니다. 카메라 HDR을 사용하고 있으면 이 강도를 캡처할 수 있으므로, 블룸에서이 부분만을 감지하여 글로우 시킬 수 있습니다.
HDR을 사용하지 않으면 차의 창문은 글로우 없이 남습니다. 글로우를 추가하는 유일한 방법은 강도 역치를 낮추는 것이지만, 그러면 이미지를 의도하지 않은 위치에 글로우하게 되어 버립니다.
HDR을 사용하지 않으면 차의 창문은 글로우 없이 남습니다. 글로우를 추가하는 유일한 방법은 강도 역치를 낮추는 것이지만, 그러면 이미지를 의도하지 않은 위치에 글로우하게 되어 버립니다.

HDR의 장점

  • 컬러가 높은 강도의 영역에서 손실되지 않는다
  • 블룸 및 글로우의 지원
  • 낮은 주기 라이트 영역에서의 밴딩 감소

HDR의 단점

  • 부동 소수점 버퍼를 사용 (렌더링 시간이 길어지고 더 많은 VRAM을 필요로 한다)
  • 하드웨어 안티-앨리어싱은 지원되지 않음(그러나 Anti-Aliasing image effect](script-Antialiasing.html)을 사용하여 가장자리를 매끄럽게 할 수 있습니다).
  • 모든 하드웨어에서 지원되지는 않는다

사용 시 주의사항

Forward Rendering

Forward Rendering 모드에서 HDR은 이미지 효과가 존재하는 경우에만 지원됩니다. 이것은 성능 고려 사항에 따라 다릅니다. 만약 이미지 효과가없는 것이면 톤 매핑은 존재할 수 없고, 강도의 잘림이 발생합니다. 이 상황에서 씬은 백 버퍼에 직접 렌더링되어 HDR은 거기에서는 지원되지 않습니다.

Deferred Rendering

HDR 모드에서 라이트의 프리패스 버퍼는 부동 소수점 버퍼로 할당됩니다. 그러면 라이팅 버퍼의 밴딩을 억제합니다. Deferred Rendering의 경우 HDR은 이미지 효과가 존재하지 않아도 지원됩니다.

스크립팅

ImageEffectTransformsToLDR 속성을 이미지 효과의 스크립트에 추가하여 대상 버퍼는 HDR이 아니라 LDR이어야 한다는 것을 나타낼 수 있습니다. 즉, 스크립트는 HDR 이미지 효과를 적용한 후 LDR로 변환할 수 있습니다.

See also

HDR Color Picker.

API
HDR Color Picker