Skip to content

HDR 렌더링(10)~HDR 블룸/글레어 처리

[칼럼 핵심 요약]
블룸 효과와 눈부심 효과는 렌더링 된 프레임의 고휘도 부분을 추출하여 수행됩니다. 이른바 페인트 소프트로 포토레터치를 하는 행위를 픽셀 셰이더로 하는 이미지다.

🌐 원문 링크: HDRレンダリング(10)~HDRブルーム/グレア処理 (Mynavi News)
📅 원문 발행일: 2009-02-13 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)

NOTE

💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)

  • HDR 디스플레이 하드웨어 보급: 본문 연재 당시(2008~2009년)에는 SDR 모니터 출력을 위해 FP16 버퍼를 톤 매핑하는 것이 목적이었으나, 현재는 1000nit 이상의 OLED/Mini-LED HDR 디스플레이가 대중화되어 ACES(Academy Color Encoding System) 기반의 광색역 HDR10 출력이 표준화되었습니다.
  • 노출 적응 및 물리 기반 카메라: 현대 게임 엔진은 실제 카메라의 셔터 스피드, 조리개(f-stop), ISO 감도를 그대로 모사하는 물리 기반 노출(Physical Camera Exposure) 모델을 사용합니다.

📖 본문 해설

[원문 리드문] > 블룸 효과나 글레어 효과는 렌더링한 프레임 중의 고휘도 부분을 추출하여 실시하게 된다. 이른바 페인트 소프트로 포토레터치를 하는 행위를 픽셀 셰이더로 하는 이미지다.

넘치는 빛을 생성하는 방법

블룸 효과와 눈부심 효과는 렌더링 된 프레임의 고휘도 부분을 추출하여 수행됩니다. 이른바 페인트 소프트로 포토레터치를 하는 행위를 픽셀 셰이더로 하는 이미지다.

의사 HDR 렌더링에 있어서, 리얼 HDR 렌더링에 있어서, 높은 다이나믹 레인지의 휘도 정보가 각 픽셀에 기록되어 있으므로, 「어디서가 고휘도인가」를 판단하지 않으면 안 된다.

예를 들면 0.0~2.0까지의 휘도값을 기록하고 있었다고 하여 폭 1.0의 범위를 표시하는 경우를 생각한다. 그 프레임이 1.0~2.0의 분포였을 때, 1.0은 최암부가 되지만, 반대로 0.0~1.0의 분포였을 때 1.0은 가장 명부가 된다. HDR 렌더링한 그 프레임의 평균 휘도를 구해 주고, 어디에서를 「고휘도이다」라고 판단할 수 있을까를 결정해 줄 필요가 있는 것이다. 이 처리에 대해서는 후술하는 톤 매핑의 해설에서 상세하게 설명한다.

톤 매핑의 필요성톤 매핑의 필요성

프레임에 대한 "고휘도"로 판단 할 수있는 "휘도 기준값"이 얻어지면, 그 값 이상의 휘도의 픽셀를 다른 버퍼로 추출한다.

이렇게 "정제"한 고휘도 추출 프레임을 "종"으로 하여 블룸 효과나 글레어 효과의 이펙트 이미지를 생성하는 것이 이 "HDR 블룸/글레어 효과" 공정이 된다.

블룸 효과는, 이 고휘도 부분이 가만히 "뻗어 나오는" 듯한 효과로 하면 되므로, 이 고휘도 추출 프레임을 흐리게 처리를 해 주면 된다는 방침을 생각해낸다.

여기서 포인트가 되는 것은 그 보카시 쪽이다.

보카시에 사용되는 보카시 필터로서 정평인 것은 「가우스 필터」(Gaussian Filter)이다.

이것은 간단하게 말하면, 어느 픽셀에 주목했을 때에, 그 픽셀 칼라를 밖에 가면 갈수록 옅고 얇고, 동심원상으로 흩어지는 것 같은 처리계가 된다.

광범위를 흐리게 하기 위해서는, 대규모 보카 처리를 반복 행할 필요가 있으므로 부하가 높다.

따라서, 고휘도 추출 프레임을 다운 샘플링하여 저해상도 버전의 고휘도 추출 프레임을 생성하고, 적절한 크기의 가우스 필터를 적용하는 대안이 종종 이용된다. 저해상도판의 고휘도 추출 프레임은 해상도가 1/2인 것부터 1/4, 1/8, 1/16, 1/32, 1/64와 같이 적당히 복수를 준비하는 것이 일반적이다.

블룸 자체에 그만큼의 고해상도 정보가 필요 없다고 하는 경우는, 최초로 생성하는 고휘도 추출 프레임을 원프레임 해상도의 1/4당으로 해 두고, 거기로부터 시작해 1/8,1/16,1/32,1/64등의 저해상도판을 준비한다…

흐리게 할 때, 저해상도 버전의 고휘도 추출 프레임만큼 어두워 지도록 가우스 필터 적용시의 픽셀 컬러의 감퇴율을 낮춘다 (로우 패스 화).

1/4 x 1/4 (256x192 픽셀)1/4 x 1/4 (256x192 픽셀)

1/8 x 1/8 (128x96 픽셀)1/8 x 1/8 (128x96 픽셀)

1/16 x 1/16 (64x48 픽셀)1/16 x 1/16 (64x48 픽셀)

1/32 x 1/32 (32x48 픽셀)1/32 x 1/32 (32x48 픽셀)

1/64 x 1/64 (16x12 pixels)1/64 x 1/64 (16x12 pixels)

이와 같이 만들어진 보케 해상도의 완전히 다른 복수의 고휘도 추출 프레임을 바이 리니어 필터를 적용하여 동일한 해상도로 확대하고, 이것을 합성하면 멀리 갈수록 가볍고 크게 보케 한 블룸 효과의 프레임이 얻어진다.

「처음에 고휘도 추출 프레임을 저해상도로 해 두고, 합성시에는 원래의 해상도로 확대해 되돌린다」… 물론 저해상도가 된 것으로 색과 해상도의 정보량은 격감하고 있는 것이지만, 외곽에 가면 갈수록 색을 희미하게 흐리게 하고 싶었기 때문에, 해상도도 그다지 중요하지 않다. 실제로 외형의 품질도 그리 나쁘지는 않다.

그림그림

그림그림

같은 해상도로 확대하여 모두 합성같은 해상도로 확대하여 모두 합성

같은 해상도로 확대하여 모두 합성같은 해상도로 확대하여 모두 합성

같은 해상도로 확대하여 모두 합성같은 해상도로 확대하여 모두 합성

광범위하게 노망이 넘치는 효과 프레임이 완성광범위하게 노망이 넘치는 효과 프레임이 완성

이 수법은, 전절에서 소개한 의사 HDR 렌더링의 개조적 존재인 「DOUBLE S.T.E.A.L」에서 실장되어 화제를 불러온 테크닉으로 「축소 버퍼에의 가우스 필터」법이라 불리며, 현재는 널리 활용되고 있다. 덧붙여 이 테크닉의 고안자의 개발자의 이름을 붙여 가와세식 MGF(Multiple Gaussian Filter)라고 불리기도 한다.

또한, 정수 LDR 버퍼를 사용하여 의사 HDR 렌더링을 구현하고 있던 「DOUBLE S.T.E.A.L」에서는, HDR 환경 맵이나 고휘도 텍스처의 α부를 휘도 정보 저장용으로서 이용해, 이 정보를 효과적으로 활용하는 것으로, 블룸/글레어 효과의 처리를 효율적으로 실시할 수 있도록 하고 있었다.

씬의 렌더링시에 이러한 HDR 환경 맵이나 고휘도 텍스처를 적용하는 국면에서는, 이들의 α부로부터 휘도 정보를 취해, 음영 계산을 이 휘도 정보에 대해서도 실시해, 렌더링 결과의 칼라 모두 출력하도록 한다. 최종 렌더링 결과의 α부에는, 의사 HDR 렌더링하면서도, 셰이딩(Shading)의 결과로서 고휘도가 된 정보가 남기 때문에, 제대로 2차 반사 이후의 표현에서도 HDR 표현을 실현할 수 있다. 그리고, 블룸/글레어 효과의 공정에서는, 이 α정보를 이용하면 된다.

의사 HDR 렌더링에 있어서의 블룸/글레어 효과/CEDEC2002 DOUBLE-S.T.E.A.L.에 있어서의 리얼타임 CG 표현 기법 ※분카사 게임 개발 사업부의사 HDR 렌더링에 있어서의 블룸/글레어 효과/CEDEC2002 DOUBLE-S.T.E.A.L.에 있어서의 리얼타임 CG 표현 기법 ※분카사 게임 개발 사업부

글레어 효과(광각, 스타 효과)도 고휘도부의 '넘치는 방법'이 다를 뿐 원리로는 블룸 효과와 똑같다. 어떤 넘치는 방법을 구현하는지는 아티스틱한 센스에 맡겨지는 부분이 된다.

「스타 오션 3」(트라이에이스, 2003)에서는 고휘도 추출 프레임을 파괴하여 회전시켜 보카하고, 이것을 합성시에는 회전을 바탕으로 되돌려 해상도를 맞추는 형태로 확대하여 합성하는 수법으로 날카로운 광작의 눈부심 효과의 이펙트를 만들어내고 있었다. (계속)

「스타 오션 3」(트라이 에이스, 2003)보다. 이 예에서는 4 방향, 십자형으로 빛이 넘치는 광추의 눈부심 표현의 생성의 흐름을 나타내고 있다「스타 오션 3」(트라이 에이스, 2003)보다. 이 예에서는 4 방향, 십자형으로 빛이 넘치는 광추의 눈부심 표현의 생성의 흐름을 나타내고 있다

"스타 오션 3"(트라이 에이스, 2003)에서의 광선"스타 오션 3"(트라이 에이스, 2003)에서의 광선

(트라이Z 니시카와 젠지)


🔗 연관 지식 베이스 (Wiki)

Based on Zenji Nishikawa's 3D Graphics Maniax series. Translated & Knowledge-Based for Korean Game Developers.