Graphics Techniques

[그래픽스 렌더링 개념] 블룸 효과

doyyy_0 2024. 10. 5. 18:57

**블룸 효과(Bloom Effect)**는 빛이 매우 밝은 물체 주위에서 번져 보이는 현상을 시뮬레이션하는 그래픽 기법입니다. 실제로 아주 밝은 빛을 보면, 그 빛이 직접적으로 보이는 것뿐만 아니라 주위로 퍼져나가면서 빛이 번지듯 보이는 경우가 있죠. 블룸 효과는 바로 이런 현상을 모방하는 것으로, 게임과 영화 등에서 빛의 사실감을 더해주는 데 주로 사용됩니다.

블룸 효과의 주요 개념

  1. 높은 밝기(High Brightness)
    • 블룸 효과의 핵심은 일정 수준 이상의 밝기를 가진 영역만을 감지하는 것입니다. 이런 밝은 영역은 하이라이트로 간주되고, 그 부분 주위로 빛이 퍼지도록 처리됩니다.
  2. 블러 적용 (Blur)
    • 밝은 영역이 감지되면, 그 부분에 블러를 적용해 빛이 퍼져 보이도록 합니다. 이 과정에서 가우시안 블러 같은 필터를 사용하여 빛의 부드러운 확산을 표현합니다.
  3. 원본 이미지와 결합
    • 블러 처리된 밝은 영역을 원본 이미지와 합성하여, 밝은 부분이 강조된 이미지를 만듭니다. 이렇게 하면 빛이 번져 나오는 것처럼 보이면서도, 원본 이미지의 디테일을 유지할 수 있습니다.

블룸 효과 구현 과정

  1. 밝은 영역 추출
    • 이미지에서 Threshold 값을 기준으로 일정 밝기 이상을 가진 픽셀을 선택합니다. 선택된 픽셀은 그대로 유지하고, 그 외의 픽셀들은 검은색으로 바꿉니다.
      • (https://en.wikipedia.org/wiki/Relative_luminance)
        * Relative Luminance Y = 0.2126*R + 0.7152*G + 0.0722*B) 밝기를 따질 때는 해당 픽셀의 RGB를 따서,이 가중치를 이용하면 밝기 기준을 알 수 있습니다. 상대적으로 G가 밝기에 영향을 많이 미친다는 것을 알 수 있습니다. 예를들어 피셀의 값이 {0.2f ,0.5f, 0.7f}라면 brightness= 0.2f*0.2126+ 0.5f*0.7152+ 0.7f*0.0722로 따지고 th를 내 임의로 정한 후 brightness가 th 보다 작은경우 해당 픽셀의 RGB 모두 0.0f로 초기화하면 됩니다.
  2. 블러 처리
    • 밝은 영역에 블러 필터(가우시안 블러 같은)를 적용합니다. 이렇게 하면 빛이 번지듯 확산된 느낌을 줍니다.
  3. 이미지 결합
    • 블러 처리된 이미지를 원본 이미지에 더합니다. 이때 블러 효과를 가중치로 조절해, 빛이 번지는 강도를 조절할 수 있습니다.
  1.  

블룸 효과의 활용

블룸 효과는 주로 다음과 같은 상황에서 사용됩니다:

  • 태양, 램프, 불꽃 같은 밝은 빛을 표현할 때.
  • SF 게임이나 영화에서 빛이 반짝이는 효과.
  • 눈부신 하이라이트를 통해 더 현실적이고 몰입감 있는 장면을 연출하고자 할 때.

요약

블룸 효과는 게임과 그래픽에서 빛의 사실감을 더해주는 중요한 기법입니다. 실제로 빛이 밝은 물체에서 번져 나오는 듯한 느낌을 구현하여 더욱 생동감 있는 화면을 만들어냅니다. Threshold로 밝은 영역을 추출하고, 블러로 빛을 퍼지게 한 후 원본 이미지와 결합하는 방식으로 구현됩니다.

 
다음은 실습 결과 내용입니다.
 
1) 오리지널 이미지
 
 
2) 밝은 영역만 남긴 이미지

3) 밝은 영역만 남긴 이미지에 가우시안 블러를 처리한 이미지
 
4) 밝은 영역만 남긴 이미지 + 오리지널 이미지(밝은 영역만 남긴 이미지에 블러처리를 안하면 어떻게 되는지 비교하기 위한 케이스입니다)
5) 최종 : 밝은 영역만 남긴 이미지에 가우시안 블러를 처리한 이미지 + 오리지널 이미지
 

출처 : 홍정모의 그래픽스 새싹코스(렌더링의 이해)

https://honglab.co.kr/