

붉은 사막 연출 영상

로스트아크 연출 영상
요즘 대부분의 RPG 게임을 보면, 인게임 연출의 퀄리티가 매우 높아졌다는 것을 체감할 수 있다.
특히 카메라가 움직일 때도 큰 위화감 없이, 정교하게 구성된 거대한 맵이 웅장하고 자연스럽게 표현된다.
이런 장면을 보고 있으면 자연스럽게 한 가지 의문이 생긴다.
"이걸 전부 다 실제 3D 모델로 렌더링하고 있는 걸까?"
직관적으로는 그렇게 보이지만, 실제로는 그렇지 않을 것이다.
특히 멀리 있는 오브젝트일수록 우리가 보고 있는 것은 정교한 3D 모델이 아니라, 성능을 위해 의도적으로 단순화된 가짜일 가능성이 높다.
그 이유는 생각보다 단순하다.
멀리 있는 오브젝트는 화면에서 차지하는 픽셀 수가 매우 작다.
하지만 이를 구성하는 3D 모델은 여전히 수천 개 이상의 폴리곤을 가지고 있다.

결과적으로 화면에서는 거의 보이지도 않는 디테일을 위해 동일한 연산 비용이 그대로 발생하는 구조다.
그렇다면 이런 비효율을 전통적으로 어떻게 해결해왔을까?
앞서 살펴본 것처럼, 멀리 있는 오브젝트는 화면에서 차지하는 비중이 매우 작다.
하지만 이를 구성하는 3D 모델은 여전히 높은 디테일과 많은 폴리곤을 유지하고 있다.
이러한 비효율을 해결하기 위해 등장한 개념이 바로 LOD(Level of Detail)다.

LOD는 카메라와의 거리나 화면에서의 중요도에 따라 오브젝트의 디테일이나 로직의 복잡도를 단계적으로 줄이는 기법이다.
즉, 가까이 있을 때는 높은 디테일의 모델을 사용하고, 멀어질수록 점점 더 단순한 모델로 대체한다.
이는 "보이지 않는 디테일에는 비용을 쓰지 않는다"는 원칙을 가장 직관적으로 구현한 방법이라고 볼 수 있다.
하지만 LOD는 단순히 디테일을 줄이는 것만으로 모든 문제가 해결되지는 않는다.
오히려 새로운 시각적 문제를 만들어내기도 한다.
가장 대표적인 문제는 LOD 전환 시 발생하는 시각적 이질감이다.
카메라와의 거리에 따라 모델이 교체되는 순간, 오브젝트의 형태나 실루엣이 갑자기 변하면서 눈에 띄는 튐(Popping)현상이 발생할 수 있다.
또한, 디테일이 줄어든 모델은 원본과 완전히 동일하지 않기 때문에 라이팅이나 쉐이딩 결과가 달라지고, 밝기나 질감이 어색하게 보이는 경우도 많다.

결국 LOD는 성능을 확보하는 데에는 효과적이지만, 시각적 자연스러움을 유지해야 하는 또 다른 과제를 남기게 된다.
앞서 살펴본 LOD는 개별 오브젝트 단위에서 디테일을 줄이는 방식이었다.
하지만 실제 게임에서는 수많은 오브젝트가 동시에 존재하기 때문에, 단순히 오브젝트 단위의 LOD만으로는 한계가 있다.
이 문제를 해결하기 위해 Unreal Engine에서는 HLOD(Hierarchical Level of Detail)를 제공한다.

HLOD는 여러 개의 오브젝트를 하나의 그룹으로 묶고, 멀리 있을 때는 이를 단일 메시로 합쳐서 렌더링하는 방식이다.
핵심은 개별 오브젝트를 각각 줄이는 것이 아니라, 씬 단위에서 묶어서 단순화하는 LOD라고 볼 수 있다.
이를 통해 드로우 콜을 크게 줄이고, 넓은 환경에서의 렌더링 성능을 효과적으로 개선할 수 있다.