루멘으로 다이내믹 글로벌 일루미네이션의 모든 잠재력을 실현하는 언리얼 엔진 5

루멘은 언리얼 엔진 5의 새로우면서 완전한 다이내믹 글로벌 일루미네이션 및 리플렉션 시스템으로, 별다른 준비 없이 바로 사용할 수 있습니다. 또한 차세대 콘솔 및 게임뿐만 아니라 건축 시각화 같은 하이엔드 시각화 영역에서도 최고의 퍼포먼스를 보여줄 수 있도록 설계되었습니다. 여기서는 루멘의 기능을 살펴보고 기술적인 세부 사항을 개괄적으로 다뤄보겠습니다. 전체 참조 자료는 루멘 문서에서 확인해 주세요.

글로벌 일루미네이션

라이트 소스에서 방출된 라이트는 그 라이트 소스에서 보이는 모든 표면을 비추며, 컴퓨터 그래픽에서는 이것을 직접광이라고 부릅니다. 하지만 현실의 라이트는 여기서 그치지 않고 표면의 컬러를 머금은 채 표면에서 반사됩니다. 거친 표면에서 모든 방향으로 반사되는 빛을 가리켜 디퓨즈 간접광 또는 글로벌 일루미네이션이라고 부르며, 이와 다르게 매끄러운 표면에서 반사되는 라이트는 리플렉션이라고 부릅니다. 라이트는 결국 여러분의 눈이나 카메라에 도달하여 이미지를 형성합니다.

과거 대부분의 게임 속 글로벌 일루미네이션은 '라이트맵 굽기'라는 오프라인 프로세스를 통해 솔브했어야 했습니다. 실시간으로 처리하기에는 계산 비용이 너무 컸기 때문이죠. 언리얼 엔진은 CPU 라이트매스 또는 GPU 라이트매스를 통해 라이트맵 굽기를 처리합니다. 라이트맵의 스태틱 라이팅은 매우 높은 퀄리티를 제공한다는 장점이 있지만 빌드하는 데 긴 시간이 걸리고 게임 환경이 크게 제한된다는 단점이 있습니다. 벽걸이 TV의 위치를 옮기는 등 간접광을 크게 변경하면 결과적으로 라이팅이 부정확하게 됩니다.
이러한 다이내믹 씬을 필요로 하는 게임은 지금껏 낮은 퀄리티의 복사도 프로브 기반 라이팅과 앰비언트 오클루전 같은 근사치에 의존해 왔습니다. 퀄리티 측면에서 보면 구운 라이팅에 비견할 만한 글로벌 일루미네이션은 여전히 찾기 어렵습니다.

루멘은 씬 곳곳에서 반사되는 라이트를 실시간으로 시뮬레이션하여 자동으로 업데이트되는 간접광을 통해 플레이어가 게임 속 월드의 모든 모습을 변경할 수 있게 지원합니다. 플레이어가 레벨의 많은 부분을 파괴하거나, 시간을 변경하거나, 레벨의 일부를 침수시키는 등의 변경사항은 모두 라이팅에 자동으로 전파됩니다. 게임 개발자들은 이제 언리얼 에디터에서 ‘라이팅을 다시 빌드해야 합니다’ 같은 경고 메시지를 더 이상 볼 필요가 없게 된 것입니다.

루멘은 글로벌 일루미네이션을 높은 퀄리티로 솔브하며, 여기에는 컬러 블리딩과 간접 섀도 등의 이펙트도 포함됩니다. 루멘은 디퓨즈 바운스를 제한 없이 지원하는데, 이것은 아래 씬의 흰색 페인트와 같은 밝은 표면을 갖춘 씬에서 매우 중요합니다.
UE4Arch의 Rafael Reis
루멘은 글로벌 일루미네이션 뿐만 아니라 야외보다 실내 환경을 더 어둡게 만들어 주는 스카이 섀도잉도 솔브합니다.
또한 루멘은 아래의 램프나 창문 같은 이미시브 머티리얼에서 추가적인 비용 없이 라이팅을 전파합니다. 이미시브 영역은 노이즈 아티팩트가 발생하지 않는 수준에서만 그 크기와 밝기를 조절할 수 있습니다. 이미시브 라이팅은 본질적으로 직접 배치한 라이트 소스보다 솔브하기가 훨씬 어렵습니다.
또한 루멘은 낮은 퀄리티에서도 반투명 및 볼류메트릭 포그의 글로벌 일루미네이션도 솔브합니다. 여기서 이미시브 사인 메시는 볼류메트릭 포그를 다이내믹하게 라이팅합니다.

리플렉션

루멘은 모든 표면과 러프니스에서 리플렉션을 다이내믹하게 솔브하며 리플렉션 캡처 같은 미리 계산된 형태와 플레이너 리플렉션스크린 스페이스 리플렉션 같이 제한된 기법을 대체합니다.
하지만 카메라로 직접 볼 수 있는 요소에 대해서만 다이내믹 글로벌 일루미네이션을 솔브하는 것만으로는 충분하지 않기 때문에 루멘은 리플렉션에서 보여지는 섀도잉된 스카이라이트 및 다이내믹 글로벌 일루미네이션도 제공합니다.
루멘 리플렉션은 이 자동차 페인트와 같이 코팅된 머티리얼을 지원합니다. 이 사례의 경우 외부 코팅은 거울 리플렉션을, 내부 레이어는 좀 더 광택이 있는 리플렉션을 갖춥니다.
Model courtesy of Audi

루멘의 레이 트레이싱

루멘은 레이 트레이싱을 사용하여 라이팅의 이러한 특성을 솔브하며, 레이가 더 빠르게 교차하는 지점에서는 씬의 근사 버전을 사용합니다. 이 씬은 루멘 씬 뷰 모드로 전환하여 시각화할 수 있습니다. 이 뷰를 사용하면 루멘이 글로벌 일루미네이션 및 리플렉션을 위해 레이 트레이싱할 때 루멘이 무엇을 ‘보는지’ 알 수 있습니다.
기본적으로 루멘은 하드웨어 지원을 갖춘 비디오 카드 없이도 레이 트레이싱이 가능한 메시 디스턴스 필드라는 소프트웨어 레이 트레이싱 기법을 사용합니다. 디스턴스 필드는 레이와 매우 빠르게 교차하는 방식으로 메시의 표면을 나타냅니다.
또한 소프트웨어 레이 트레이싱은 메시를 글로벌 디스턴스 필드에 병합하여 레이가 매우 빠르게 교차할 수 있도록 하며, 메가스캔을 직접 배치할 때와 같이 오버랩되는 메시가 많은 경우에도 마찬가지입니다. 에픽게임즈의 기술 데모 나나이트 세계의 루멘에인션트의 협곡에서는 메시 오버랩이 상당히 많기 때문에 글로벌 디스턴스 필드 트레이싱만 사용되었습니다.
또한 루멘은 프로젝트 세팅을 통해 하드웨어 레이 트레이싱도 사용할 수 있습니다. 하드웨어 레이 트레이싱은 스킨을 입힌 메시 등 보다 다양한 지오메트리 유형을 표시하기 때문에 더 정확하지만 비용도 더 높습니다. 하드웨어 레이 트레이싱은 거울 리플렉션에 필수입니다.
UE4Arch의 Rafael Reis
매트릭스 어웨이큰스: 언리얼 엔진 5 익스피어리언스 테크 데모 속 마천루들은 태양의 직사광을 차단하여 루멘이 화면 속 대부분의 라이팅을 제공하도록 합니다.
루멘은 이 데모에서 하드웨어 레이 트레이싱을 사용하여 고퀄리티 리플렉션을 선보이고 스킨을 입힌 메시와 광범위한 시야를 표현합니다.

표면 캐시

레이가 표면에 히트하면 루멘은 머티리얼과 들어오는 라이팅을 평가해야 합니다. 모든 레이에 대해 이처럼 평가하면 다수의 레이가 동일한 지점에 히트할 수도 있고 머티리얼에도 텍스처 룩업이 여러 개 존재할 수도 있으므로 비용이 굉장히 많이 들고 효율적이지도 못합니다. 루멘은 이 같은 라이팅을 표면 캐시에 캐싱하며, 이 기능은 기본적으로 활성화됩니다.

루멘은 각 메시를 캡처할 방향을 선택하여 표면 캐시를 채워 모든 표면을 커버합니다. 플레이어가 월드에서 움직이면 루멘은 인접 메시의 머티리얼 어트리뷰트를 지속적으로 표면 캐시 아틀라스로 리캡처합니다. 나나이트 가상화 지오메트리 시스템은 특히 하이 폴리 메시의 경우 메시 렌더링 속도를 크게 높여주지만 루멘의 경우 반드시 필요한 것은 아닙니다. 그런 다음 표면에 라이팅이 적용되며, 여기에는 멀티 바운스 글로벌 일루미네이션과 리플렉션에서 표시될 섀도잉된 스카이라이팅 계산이 포함됩니다. 이제 표면 캐시 라이팅을 사용하여 글로벌 일루미네이션과 리플렉션 같은 기능을 가속화할 수 있게 되었습니다.

루멘 언리얼 엔진 5 Image30
표면 캐시는 루멘의 핵심 최적화 기능이지만 콘텐츠별로 고려해야 하는 사항도 있습니다. 표면 캐시는 특히 단순한 인테리어 메시만 지원할 수 있으며 벽, 바닥, 천장은 전부 별도의 메시로 구성되어 있어야 합니다. 가구까지 포함하여 방 전체를 단일 메시로 임포트하는 경우 루멘이 작동하지 않습니다.
Lumen Unreal Engine 5 Image6
표면 캐시 뷰 모드는 적용되지 않는 부분을 분홍색으로 표시합니다. 이러한 영역은 리플렉션에서 검게 나타나며, 루멘 스크린 트레이스만 활성화되므로 뷰 종속 글로벌 일루미네이션이 발생하게 됩니다.
Lumen Unreal Engine 5 Image21

파이널 개더 및 디노이즈

레이 트레이싱은 비용이 매우 많이 드는 작업이므로 다수의 레이를 트레이싱하는 것은 가급적 피해야 합니다. 또한 화면의 모든 픽셀이 씬의 다른 모든 표면에서 라이팅을 받는다는 점도 고려해야 합니다. '글로벌' 일루미네이션이라고 부르는 이유가 바로 이 때문입니다. 모든 방향의 레이를 트레이싱할 수 없으므로 작은 서브셋을 하나 선택해야 합니다. 중요한 방향의 레이를 놓치면 최종 이미지에 노이즈 아티팩트가 발생할 수 있기 때문에 레이 트레이싱할 방향을 정확히 파악하면서 적은 수의 트레이싱을 최대한 재활용해야 합니다.

디퓨즈 글로벌 일루미네이션의 경우, 루멘은 Siggraph 2021에서 선보였던 광속 발산도 캐싱 기반 고급 파이널 개더 알고리즘을 사용합니다.

루멘의 파이널 개더는 스크린 스페이스 광속 발산도 캐시를 사용하여 메인 화면의 글로벌 일루미네이션 계산을 대폭 다운샘플링합니다. 다운샘플링된 간접광은 전체 해상도 머티리얼 데이터와 통합되어 전체 해상도 셰이딩을 생성합니다.
이 광속 발산도 캐시 내에서는 들어오는 라이팅이 필터링되어 노이즈 대부분을 스무딩하고 인접 픽셀 간에 트레이스를 최대한 재활용합니다. 이렇게 하면 다운샘플링된 광속 발산도 캐시 스페이스에서 작업할 수 있어 보다 효과적이기 때문에 스크린 스페이스 디노이저와는 차별화됩니다.
루멘은 들어오는 라이팅의 임포턴스 샘플링이라는 기법을 통해 마지막 프레임에서 밝은 라이팅이 들어온 방향을 확인하는 방식으로 레이 트레이싱 방향을 매우 신중하게 선택합니다. 이전 프레임의 라이팅은 이 프레임의 라이팅을 검색하는 데 참고되어 실제보다 4배 더 많은 레이 트레이싱이 이루어진 것과 같은 퀄리티를 구현하는 동시에 실행 속도는 훨씬 더 빠릅니다. 아래 스크린샷에서 흰색 레이가 바로 임포턴스 샘플링을 사용하도록 선택된 레이입니다.
마지막으로 루멘은 근처의 라이팅을 멀리 떨어져 있는 라이팅에서 분리하고, 월드 스페이스 광속 발산도 캐싱이라고 부르는 기법을 통해 훨씬 더 많은 레이를 트레이싱하여 먼 거리의 라이팅을 리졸브함으로써 노이즈를 줄입니다. 이 단계는 실내 공간의 조명 전체가 작은 창에서 들어오는 스카이라이팅에 의해 온전히 이루어질 경우 매우 중요해지며, 루멘의 실내 퀄리티를 보장하는 데 핵심적인 역할을 합니다.
거친 표면 위에 적용되는 리플렉션의 경우, 루멘은 추가 비용 없이 스크린 스페이스 광속 발산도 캐시를 재활용합니다. 또한 루멘은 이 방법을 통해 자동차 페인트 같이 클리어 코트 머티리얼에서 사용할 두 번째 리플렉션 레이어를 제공하면서도 비용은 두 배가 되지 않도록 합니다.
UE4Arch의 Rafael Reis
부드러운 표면 위에 적용되는 리플렉션은 추가 레이를 트레이싱하여 리플렉션된 라이트를 찾습니다. 이 레이에서 찾은 라이팅은 인접한 픽셀 간에 공유되며 프레임에서 일시적으로 누적되어 노이즈를 스무딩합니다.
이러한 모든 샘플링 및 디노이즈 기법은 모두 루멘의 퀄리티 및 퍼포먼스에 있어 매우 중요한 역할을 합니다. 루멘은 직사광에 사용하도록 설계되지는 않았지만 파이널 개더 퀄리티 덕분에 이미시브 메시를 사용하여 씬 전체에 라이팅을 적용하는 것도 가능합니다. 매트릭스 어웨이큰스: 언리얼 엔진 5 익스피어리언스에서 사용된 실험단계의 나이트 모드에서는 루멘 글로벌 일루미네이션과 리플렉션만으로 수백만 개의 이미시브 창문 메시에서 라이트를 전파하며, 아티스트가 직접 배치한 라이트 소스는 전혀 없습니다.

퍼포먼스 및 퀄리티

루멘은 4K 출력용 언리얼 엔진 5의 템포럴 슈퍼 해상도 알고리즘을 통한 템포럴 업샘플링에 크게 의존합니다. 이를 통해 루멘은 매우 낮은 퀄리티 세팅으로 4K를 네이티브로 실행하면서도 최상의 최종 이미지 퀄리티를 달성할 수 있습니다.

글로벌 일루미네이션 및 리플렉션을 위해 높은 엔진 퀄리티 레벨을 사용하는 경우 루멘은 차세대 콘솔에서 60FPS를 달성할 수 있지만, 이러한 세팅에서 높은 퀄리티를 구현하는 것은 아직 작업 중에 있습니다.

루멘을 사용하면서도 퀄리티를 높이기 위해서는 다음과 같은 다른 방법을 사용해 볼 수 있습니다.
  • 포스트 프로세스 볼륨 세팅에서 파이널 개더 퀄리티를 높입니다.
  • 하드웨어 레이 트레이싱을 사용합니다.
  • 레이가 표면 캐싱이 아닌 더 높은 퀄리티의 표면에 히트한 경우 히트 라이팅을 사용합니다.
루멘을 사용할 때 세팅을 높이면 건축 시각화 영역에서 필요로 하는 높은 퀄리티의 리얼타임 글로벌 일루미네이션 및 리플렉션을 제공할 수 있습니다.
UE4Arch의 Rafael Reis

마무리

루멘의 기능과 내부의 작동 원리를 요약한 이번 글이 도움이 되었기를 바랍니다. 루멘은 아직 개발이 진행 중이며 나날이 향상되고 있습니다. 특히 차세대 콘솔의 60FPS 예산 내에서 더 나은 퍼포먼스와 퀄리티를 구현하고 사용 사례를 자동차, 버추얼 프로덕션 및 영화 렌더링까지 확장할 수 있도록 최선을 다해 노력하고 있습니다.

    지금 언리얼 엔진 5.0을 다운로드하세요!

    기존 언리얼 엔진 사용자는 에픽게임즈 런처에서 언리얼 엔진 5를 다운로드할 수 있으며, 처음 시작하신다면 아래 링크를 눌러 지금 바로 시작해 보세요. 신규 기능과 업그레이드를 모두 즐기시길 바라며, 피드백은 언제나 환영합니다!