소식

언리얼 엔진 루멘 vs. 레이 트레이싱 설명: 소프트웨어와 하드웨어

Unreal Engine 5는 2025년 가장 인기 있는 게임 엔진입니다. 물론 특히 나나이트와 루멘과 관련된 결점이 있지만 에픽 로고는 가장 인기 있는 타이틀 중 눈에 띕니다. 최근 UE5 히트작으로는 클레어 옵스큐어(Clair Obscure), 오블리비언 리마스터(Oblivion Remastered), 룬이스케이프(Runescape), 델타 포스(Delta Force), 프래그펑크(Fragpunk), 스플릿 픽션(Split Fiction), 인조이(InZOI) 등이 있습니다. 루멘은 기존 레이 트레이싱과 어떻게 다르며, 어떻게 작동하나요?

루멘 vs. 레이 트레이싱: 차이점은 무엇입니까?

루멘은 기존의 2단계 레이 트레이싱 파이프라인 (BVH 테스트 및 히트 포인트 셰이딩)을 더 빠르지만 정확도가 떨어지는 방법인 디스턴스 필드(Distance Fields) 및 표면 캐시(Surface Cache)로 대체합니다.

  • 디스턴스 필드는 더 간단하고 대략적인 레이 마칭을 사용하여 레이 교차 테스트를 가속화합니다.
  • Surface Cache 는 다양한 히트 포인트에 필요한 조명 데이터를 저장하여 모든 교차점에 대한 비용이 많이 드는 셰이더 계산을 제거합니다.
  • 이 프로세스는 화면 상의 오브젝트에 대해 Screen Tracing 을 사용하고 원거리 지오메트리에 대해 저해상도 거리 필드를 사용하여 더욱 최적화됩니다.

스크린 트레이싱

스크린 트레이싱은 루멘 파이프라인의 첫 번째 단계입니다.

  • 깊이 버퍼 또는 화면 공간의 개체에 대해 수행됩니다.
  • 주로 오브젝트 가장자리, 경계 및 틈새에 고품질 SSAO 대체품으로 사용됩니다.
  • 화면 추적에서 놓친 객체는 distance 필드에 의해 제공됩니다.

메시 디스턴스 필드

메시 디스턴스 필드는 객체(또는 결합된 객체 세트)의 3D 표현입니다.

  • MDF의 각 점은 체적 내에서 객체 표면까지의 가장 가까운 거리를 저장합니다.
  • 이것은 오프라인으로 계산되며 레이 마칭 시 MDF의 빈 공간을 건너뛸 수 있습니다.
  • 레이 마칭 은 확산 조명을 계산하는 데 사용되는 최적화된 형태의 레이 트레이싱입니다.
    • 당신은 광선의 경로를 따라 작은 걸음으로 행진합니다.
    • 각 단계에서 가장 가까운 표면까지의 거리는 MDF를 사용하여 계산됩니다.
  • 음영 은 광선의 근접성에서 표면이 감지되는 경우 적용됩니다.
  • 적용되는 음영의 양은 개체까지의 거리에 따라 달라집니다.
  • 교차하면 그림자, 확산 및 반사 광선이 광원 또는 프로브를 향해 바깥쪽으로 투사됩니다.
  • MDF는 표면 캐시를 사용하여 교차점의 조명을 결정합니다. 비용이 많이 드는 셰이더 계산 대신 캐시에서 참조되고 프레임에 걸쳐 점진적으로 업데이트됩니다.
루멘 퀄리티 세팅은 SDF 밉맵에 영향을 줍니다. “Epic”에서는 고해상도 MDF를 더 가까운 물체에 사용하고 나머지는 축소된 변형을 사용합니다. 따라서 더 미세한 형상은 더 낮은 품질 옵션에서 다루어지지 않습니다.

전역 거리 필드

글로벌 디스턴스 필드(Global Distance Fields)는 씬의 모든 MDF를 결합하여 얻은 추상적인 볼륨입니다.

  • 그 결과 최소한의 오브젝트별 세부 사항을 가진 베어본 기하학적 표현이 생성됩니다.
  • GDF는 대규모 또는 “글로벌” 조명에 사용됩니다.
  • GDF는 필요한 경우에만 캐시 되고 업데이트됩니다.
  • 메시 디스턴스 필드(Mesh Distance Fields) 는 카메라 근처의 오브젝트에 사용되며, 나머지 지오메트리는 글로벌 필드(Global Fields) 에 남겨둡니다.
  • GDF는 중간 품질 설정에서 MDF를 대체합니다.

글로벌 필드 라이팅

표면 캐시와 해당 카드는 MDF에서 잘 작동하지만 전역 거리 필드에는 사용할 수 없습니다. GDF는 크고 병합된 MDF이며, 광선이 어느 부분이 교차했는지 알 수 있는 방법은 없습니다.

  • 카드는 카메라 주변의 복셀 모음으로 병합됩니다.
  • 각 복셀은 6개의 면과 인접한 복셀의 방향 에 따라 조명을 저장합니다.

하이트필드

대규모 오픈 월드는 2D로 레이마칭되는 하이트필드 컴포넌트로 나뉩니다. 적중 시 표면 캐시 는 포인트의 광채를 결정하기 위해 참조됩니다. 또한 표면 캐시는 히트 포인트가 투명한지(추적 계속) 또는 불투명한지(추적 종료) 확인하는 데 도움이 됩니다.

표면 캐시

표면 캐시는 Lumen의 중추를 형성합니다.

  • 카드라고 하는 다양한 표면 점에 대한 재료 및 조명 데이터를 저장합니다.
  • (디스턴스 필드(Distance Fields) 를 사용하여) 교차할 때, 한 지점의 조명은 이 캐시에서 참조 됩니다.
  • 계산되고, 캐시되고, 프레임에 걸쳐 점진적으로 업데이트됩니다.
메시/개체당 최대 12장의 카드

Surface Cache는 캐시 페이지의 사용량 최신성에 따라 업데이트됩니다. 직접 조명과 간접 조명은 업데이트 정책이 다르며 전자가 훨씬 빠릅니다.

직접 조명 캐시 페이지는 8×8 타일로 변환하여 업데이트됩니다. 뎁스 버퍼 순서를 사용하면 각 타일은 최대 8개 이상의 조명을 차지합니다. 그림자는 온스크린에 대한 섀도우 과 오프스크린 텍셀에 대한 압축된 섀도우 레이를 혼합하여 계산됩니다.

간접 조명 은 씬에 배치된 라이트 프로브를 사용하여 계산됩니다. 분포는 적습니다( 4×4 타일당 1개). 각 텍셀에서 데이터는 가장 가까운 4개의 프로브와 이전 프레임 데이터에서 보간됩니다. 다중 바운스 간접 조명은 현재 프레임의 직접 조명과 마지막 프레임의 간접 조명을 샘플링하여 시뮬레이션합니다.

파이널 개더링

파이널 게더(Final Gather)는 표면 캐시를 백업하여 누락된 조명 데이터를 고려합니다. Screen Space Radiance Cache를 기반으로 합니다.

  • 픽셀(화면 공간)에 배치된 화면 프로브 를 사용합니다.
  • 스크린 스페이스 래디언스 프로브는 해상도의 1/16 에서 작동합니다.
  • 그 결과는 공간적으로나 시간적으로 보간 됩니다.
  • 중요도 샘플링은 이전 프레임 (Screen Radiance Cache)의 조명을 현재 프레임에 투영합니다.
  • 캐시는 각 프레임 광선의 방향과 위치를 인덱싱 하여 시간적 재투영을 지원합니다.
  • 실패하면 World Space Cache가 사용됩니다.

월드 래디언스 캐시

별도의 저해상도 World Radiance Cache 는 원거리 조명에 사용됩니다.

  • 그들은 세계 공간에 배치되고 해상도의 1/256 로 작동합니다.
  • 그들은 점진적인 업데이트와 함께 시간적 축적을 활용합니다.
  • World Space Radiance Cache는 방향 해상도가 높지만 공간 해상도가 낮습니다.
  • 방의 모든 조명이 멀리 있는 작은 창문에서 나오는 상황에서 잘 작동합니다.
  • Screen Space 프로브 광선은 더 짧아서 놓치면 World Space Cache로 돌아갑니다.

디테일한 지오메트리가 있는 영역은 더 조밀한 프로브 그리드를 사용하며, 세련된 결과를 위해 임시로 샘플링된 조명에 앰비언트 오클루젼이 추가됩니다.

라이트 트레이싱은 마지막 프레임에서 휘도 가 있는 섹션의 우선 순위를 지정하여 최적화됩니다.

Volumetric & Transparency 파이널 게더

안개와 연기를 포함한 볼류메트릭 효과는 뷰포트 절두체를 덮고 있는 별도의 froxel 그리드 를 사용하여 계산됩니다.

  • 조명을 결정하기 위해 추적되는 팔면체 프로브 로 구성되며 공간 보간으로 뒷받침됩니다.
  • 결과는 반투명 또는 체적 안개 패스와 통합되고 일시적으로 누적되어 안정성을 향상시킵니다.
  • 투명도는 보이는 froxel 그리드 주위의 모든 곳에 프로브를 배치하여 계산됩니다. 이러한 프로브는 추적되어 광도 밉맵을 생성합니다.
  • Translucency Radiance Cache와 Opaque World Radiance Cache는 갭을 채우기 위해 겹쳐져 있습니다.

하드웨어 루멘 레이 트레이싱

  • 기존의 레이 트레이싱 알고리즘과 마찬가지로 거리 필드를 매 프레임마다 재구축되는 BVH로 대체합니다.
  • 폴리곤 교차 테스트는 거리 필드에 비해 눈에 띄는 품질 업그레이드를 제공합니다.
  • 픽셀 대신 프로브, 표면 캐시 텍셀타일에서 작동합니다.
  • 하드웨어 루멘은 스키닝된 메시 (움직이는 오브젝트)와 잘 작동하며 더 디테일한 리플렉션을 생성합니다.
  • 레이 트레이싱은 또한 원거리 추적을 사용하여 원거리 조명을 크게 개선합니다. 전체 조명 및 반사 범위를 카메라에서 1km 까지 확장합니다.
  • HWRT는 표면 캐시와 페어링할 수 있습니다. 이 모드에서는 BVH 교차가 평소와 같이 수행되지만 각 히트 포인트를 음영 처리하는 대신 표면 캐시에서 조명 정보가 파생됩니다.

반사

기본적으로 루멘은 소프트웨어 파이프라인을 사용하여 온스크린 및 오프스크린 리플렉션을 렌더링합니다. 전자의 대부분은 스크린 트레이스를 사용하여 계산됩니다. 오프스크린 리플렉션은 다음과 같이 계산됩니다.

  • Mesh Distance Fields for nearby surfaces(주변 표면에 대한 메시 거리 필드) – 고품질 모드가 활성화된 경우입니다.
  • 글로벌 디스턴스 필드(Global Distance Fields) : 먼 거리 의 표면 또는 모든 표면(중간 품질의 경우).
  • 히트 시 리플렉션은 Surface Cache를 사용하여 빠르게 렌더링됩니다.
  • 이 방법은 종종 노이즈가 많고 대략적인 반사를 생성하여 아티팩트가 발생하기 쉽습니다.

하드웨어 레이 트레이싱 파이프라인은 정확한 히트 포인트 계산을 위해 BVH 테스트를 활용합니다. 명중 시 엔진은:

  • 재질 속성(색상, 거칠기, 법선)을 평가합니다.
  • 직접 조명과 그림자를 결정하기 위해 광원을 향해 추가 그림자 광선을 추적합니다.
  • 표면 캐시와 결합하여 셰이더 계산을 줄여 성능을 향상시킬 수 있습니다.

버추얼 섀도우 맵(Virtual Shadow Maps)

버추얼 섀도우 맵(Virtual Shadow Maps)은 16k x 16k 픽셀의 가상 해상도를 가진 초고해상도 섀도우 맵입니다. 128×128 크기의 페이지로 분할되어 화면 그림자에 필요한 경우에만 캐시되고 렌더링됩니다. 섀도우 맵 레이 트레이싱(SMRT)은 소프트 섀도우와 컨택트 경화를 생성하는 데 사용됩니다.

섀도 맵 레이 트레이싱(Shadow Map Ray Tracing )은 실제 지오메트리 대신 가상 섀도우 맵에 대한 교차 테스트를 포함합니다.

  • 그림자 광선은 표면에서 광원을 향해 투사됩니다.
  • 이를 따라 수많은 샘플을 투영하고 섀도우 맵 에 대해 테스트하여 부드러운 음영 및 접촉 경화를 생성합니다.
  • 그림자 광선 분포 는 조명 반경 또는 각도를 기반으로 합니다.

랜드스케이프 섀도(Landscape Shadows) 로, 디렉셔널 라이트에 의해 드리워집니다. 클립맵을 사용하여 렌더링됩니다. 각 클립맵 레벨에는 자체 16K VSM이 있지만 이전 레벨보다 두 배 더 많은 영역을 커버합니다. 기본적으로:

  • 가장 가깝고 상세한 클립맵은 카메라에서 64cm 를 커버하고 가장 넓은 클립맵은 최대 40km를 커버합니다.
  • 한 지점의 클립맵 해상도는 카메라로부터의 거리에 따라 달라집니다: 멀수록 낮아집니다.

Areej Syed

Processors, PC gaming, and the past. I have been writing about computer hardware for over seven years with more than 5000 published articles. Started off during engineering college and haven't stopped since. Find me at HardwareTimes and PC Opset.
Back to top button