**블룸 효과(Bloom Effect)**는 빛이 매우 밝은 물체 주위에서 번져 보이는 현상을 시뮬레이션하는 그래픽 기법입니다. 실제로 아주 밝은 빛을 보면, 그 빛이 직접적으로 보이는 것뿐만 아니라 주위로 퍼져나가면서 빛이 번지듯 보이는 경우가 있죠. 블룸 효과는 바로 이런 현상을 모방하는 것으로, 게임과 영화 등에서 빛의 사실감을 더해주는 데 주로 사용됩니다.
블룸 효과의 주요 개념
높은 밝기(High Brightness)
블룸 효과의 핵심은 일정 수준 이상의 밝기를 가진 영역만을 감지하는 것입니다. 이런 밝은 영역은 하이라이트로 간주되고, 그 부분 주위로 빛이 퍼지도록 처리됩니다.
블러 적용 (Blur)
밝은 영역이 감지되면, 그 부분에 블러를 적용해 빛이 퍼져 보이도록 합니다. 이 과정에서 가우시안 블러 같은 필터를 사용하여 빛의 부드러운 확산을 표현합니다.
원본 이미지와 결합
블러 처리된 밝은 영역을 원본 이미지와 합성하여, 밝은 부분이 강조된 이미지를 만듭니다. 이렇게 하면 빛이 번져 나오는 것처럼 보이면서도, 원본 이미지의 디테일을 유지할 수 있습니다.
블룸 효과 구현 과정
밝은 영역 추출
이미지에서 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로 초기화하면 됩니다.
블러 처리
밝은 영역에 블러 필터(가우시안 블러 같은)를 적용합니다. 이렇게 하면 빛이 번지듯 확산된 느낌을 줍니다.
이미지 결합
블러 처리된 이미지를 원본 이미지에 더합니다. 이때 블러 효과를 가중치로 조절해, 빛이 번지는 강도를 조절할 수 있습니다.
블룸 효과의 활용
블룸 효과는 주로 다음과 같은 상황에서 사용됩니다:
태양, 램프, 불꽃 같은 밝은 빛을 표현할 때.
SF 게임이나 영화에서 빛이 반짝이는 효과.
눈부신 하이라이트를 통해 더 현실적이고 몰입감 있는 장면을 연출하고자 할 때.
요약
블룸 효과는 게임과 그래픽에서 빛의 사실감을 더해주는 중요한 기법입니다. 실제로 빛이 밝은 물체에서 번져 나오는 듯한 느낌을 구현하여 더욱 생동감 있는 화면을 만들어냅니다. Threshold로 밝은 영역을 추출하고, 블러로 빛을 퍼지게 한 후 원본 이미지와 결합하는 방식으로 구현됩니다.
다음은 실습 결과 내용입니다.
1) 오리지널 이미지
2) 밝은 영역만 남긴 이미지
3) 밝은 영역만 남긴 이미지에 가우시안 블러를 처리한 이미지
4) 밝은 영역만 남긴 이미지 + 오리지널 이미지(밝은 영역만 남긴 이미지에 블러처리를 안하면 어떻게 되는지 비교하기 위한 케이스입니다)
5) 최종 : 밝은 영역만 남긴 이미지에 가우시안 블러를 처리한 이미지 + 오리지널 이미지