게임 엔진에서 Bloom 빛 번짐 화사한 효과를 구현하는 원리 - Whitmem
게임 엔진에서 Bloom 빛 번짐 화사한 효과를 구현하는 원리
Game Development
2025-02-28 01:08 게시 0dc763966a14972c3ef7

0
0
53
이 페이지는 외부 공간에 무단 복제할 수 없으며 오직 있는 그대로 게시되며 부정확한 내용을 포함할 수 있습니다. 법률이 허용하는 한 가이드 라인에 맞춰 게시 내용을 인용하거나 출처로 표기할 수 있습니다.
This page is not to be distributed to external services; it is provided as is and may contain inaccuracies.
Bloom 효과 원리
항상 게임을 개발하거나 3D 장면, 렌더링을 구현할 때 크게 관심을 가졌던 기능이 Bloom이었다. 이 기능은 특정 부분이 밝게 번져 보여 조금 더 화사시한 효과를 낸다. 특히 이 기능은 특정 장면에서 분위기를 강조하고 고조되는 효과를 내기도 한다.
대부분의 게임 개발 소프트웨어 및 렌더링 소프트웨어에는 Bloom 효과가 제공되지만, 이 효과도 여러 수단과 이유를 통해 구현되기 때문에 구현되는 원리, 과정을 확실하게 알아두는 것이 좋다.
특히 이러한 Bloom 처리는 포스트 프로세싱 단계에서 처리되기 때문에, 메시 처리와는 직접적인 연관이 없고 각 메시의 쉐이더와도 직접적인 연관은 없다는 사실을 인지해야 한다.
포스트 프로세싱이란
포스트 프로세싱은 말 그대로 후처리라는 의미를 가진다.
기본적으로 2D 나 3D 에서 각 객체가 렌더링될 때 한 번에 렌더링되는 것이 아니라, 각 메시 별로 버텍스가 그려지고, 해당 버텍스안에 채워지는 쉐이더로 색상을 채우게 된다. 그러나 이 과정에서는 각 객체마다 별개로 색상이 칠해지기 때문에 메시 영역을 벗어난 바깥 영역에는 일절 관여할 수 없다. 즉 이 객체의 면을 나타내는 화면 픽셀에만 색상을 칠할 수 있기에, 빛이 강해 주변으로 빛이 새어 나가는 현상을 구현할 수 없다.
그렇기에 객체가 모두 그려지고 난 하나의 이미지를 이리저리 색상 보강을 하고 번짐 효과를 주고 하는 것이 바로 포스트 프로세싱이다.
Bloom 효과
결과적으로 현실 세계에서, Bloom 효과는 해당 물체에서 반사되는 빛이 너무 강해 그 주변까지 빛이 퍼져나가는 현상을 모방하는 것인데, 각 물체의 쉐이더는 물체의 면 색상만 렌더링하기 때문에 이를 구현할 수 없다.
따라서 원본 diffuse 및 라이팅이 적용된 색상으로 물체위에 렌더링을 한 뒤, 이를 최종적으로 총합한 이미지 한장 텍스처를 다시 읽어들여 Bloom 효과를 적용한 뒤 화면에 다시 덮어씌우는 것이다.
즉 위 텍스처가 기본 렌더링된 뒤, 이 텍스처를 그대로 가져와서 합성을 수행한다.
해당 부분의 텍스처에서 주변 영역의 블러와 섞어 Bloom 효과를 구현할 수 있다.
특히, Bloom 효과를 구현하기 위해 Blur를 적용한다.
위에 blur가 적용된 스크린 텍스처에 대해, 다시 일정 세기Intensity를 곱한다.
여기에 기존 원본 색상을 더한다.
꽤 느낌있는 Bloom 효과가 완성된 것을 알 수 있다.
댓글 0개
댓글은 일회용 패스워드가 발급되며 사이트 이용 약관에 동의로 간주됩니다.
확인
Whitmemit 개인 일지 블로그는 개인이 운영하는 정보 공유 공간으로 사용자의 민감한 개인 정보를 직접 요구하거나 요청하지 않습니다. 기본적인 사이트 방문시 처리되는 처리 정보에 대해서는 '사이트 처리 방침'을 참고하십시오. 추가적인 기능의 제공을 위하여 쿠키 정보를 사용하고 있습니다. Whitmemit 에서 처리하는 정보는 식별 용도로 사용되며 기타 글꼴 및 폰트 라이브러리에서 쿠키 정보를 사용할 수 있습니다.
이 자료는 모두 필수 자료로 간주되며, 사이트 이용을 하거나, 탐색하는 경우 동의로 간주합니다.