리얼타임 퍼포먼스 예산을 유지해야 하는 프로젝트의 경우, 해당 타깃 프레임 레이트를 달성하기 위해 프레임 예산을 설정하는 것이 중요합니다. 타깃 프레임 레이트는 대개 30 또는 60fps(초당 프레임)입니다. 콘텐츠나 워크플로를 조정하여 프로젝트 퍼포먼스를 최적화하고 향상할 수 있는 다양한 방법이 있습니다.
이 가이드에서는 언리얼 엔진의 레이 트레이싱(Ray Tracing) 기능을 최적화하기 위해 고려해야 할 몇 가지 사항과 함께 씬을 디버깅하고 관련 이슈를 조사하여 문제 영역을 정확히 짚어내는 방법을 다룹니다.
레이 트레이싱 비용 개요
하드웨어 레이 트레이싱은 두 가지 레벨의 바운딩 볼륨 계층구조(Bounding Volume Hierarchy, BVH)를 사용하여 레이 탐색을 가속화합니다. 최상위 수준 가속화 구조(Top Level Acceleration Structure, TLAS)는 전체 씬에 대한 메시 인스턴스를 모두 포함합니다. 해당 인스턴스에 의해 레퍼런스된 메시가 최하위 수준 가속화 구조(Bottom Level Acceleration Structures, BLAS)입니다.
아래의 다이어그램은 BVH가 레이 탐색에 어떻게 작용하는지를 시각적으로 보여줍니다.
레이 트레이싱과 연관된 비용에는 세 가지 주요 카테고리가 있습니다.
스킨을 입힌 메시 또는 헤어처럼 다이내믹하게 변형되는 메시를 위한 최하위 수준 가속화 구조 빌드.
씬과 셰이더 바인딩 테이블(Shader Binding Table, SBT)을 위한 최상위 수준 가속화 구조 빌드.
레이 트레이싱을 사용하는 각 기능에 대한 레이 탐색.
프로젝트 개발을 위해 콘솔 변수로 특정 유형의 지오메트리에 대한 레이 트레이싱 비용을 테스트해 볼 수 있습니다. 특정 유형의 비용을 측정하거나 특정 유형의 레이 트레이싱 기능을 완전히 비활성화할 때 유용합니다. `r.RayTracing.Geometry.*` 아래에 나열되어 있습니다.
| 지오메트리 타입 | 콘솔 변수 | 디폴트 상태 |
|---|---|---|
스태틱 메시 |
| Enabled |
스켈레탈 메시 |
| Enabled |
인스턴스드 스태틱 메시 |
| Enabled |
랜드스케이프 터레인 |
| Enabled |
지오메트리 캐시 |
| Enabled |
지오메트리 컬렉션 |
| 비활성화됨 |
나이아가라 메시 |
| Enabled |
나이아가라 리본 |
| Enabled |
나이아가라 스프라이트 |
| Enabled |
프로시저럴 메시 |
| Enabled |
최하위 수준 가속화 구조 업데이트
스태틱 메시의 최하위 수준 가속화 구조는 로드 시(또는 콘솔에서 쿠킹 시) 한 번만 빌드되는데, 메시가 다이내믹하게 변형되면 매 프레임마다 리빌드해야 하므로 막대한 비용이 필요할 수 있습니다. 최하위 수준 가속화 구조 리빌드는 GPU 작업이며 변형되는 총 트라이앵글 수에 비례하는 것이 특징입니다. 트라이앵글 수가 많은 스켈레탈 메시를 많이 사용하면 GPU 비용이 빠르게 증가할 수 있습니다.
최하위 수준 가속화 구조의 리빌드 비용은 다음 영역 아래 있는 GPU 프로파일러(GPU Profiler)에서 볼 수 있습니다.
Scene > CommitRayTracingGeometryUpdates
Scene > CommitHairRayTracingGeometryUpdates
Scene > RayTracingGeometry
매 프레임마다 리빌드되는 지오메트리에는 다음 유형이 있습니다.
GPUSkinCache를 통해 스키닝된 메시
계속 변화하는 레벨 오브 디테일(Level of Detail, LOD)을 지원하기 위해 리빌드되는 랜드스케이프
카오스 디스트럭션을 위한 지오메트리 컬렉션
Hair
프로시저럴 메시
나이아가라 파티클 시스템
하이 폴리곤 스켈레탈 메시는 최하위 수준 가속화 구조의 빌드 비용이 높아지는 가장 일반적인 원인입니다. 스켈레탈 메시는 스켈레탈 메시 에디터에 있는 레이 트레이싱 최소 LOD(Ray Tracing Min LOD) 프로퍼티를 사용하여 레이 트레이싱 기능에 가장 높은 LOD가 사용되지 않게 할 수 있습니다.
D3D12로 프로젝트를 실행할 때 콘솔 명령 D3D12.DumpRayTracingGeometries를 사용하여 로그에 덤프된 다이내믹 BLAS 리빌드를 위한 모든 메모리 할당 목록을 가져옵니다. 이 목록을 사용하여 프로젝트를 최적화할 수 있습니다.
스태틱 메시 컴포넌트의 월드 포지션 오프셋
월드 포지션 오프셋(World Position Offset, WPO)으로 레이 트레이싱 기능을 효율적으로 지원하기란 쉽지 않습니다. 각 인스턴스에 고유한 메모리가 있어야 할 뿐 아니라 최하위 수준 가속화 구조를 다이내믹하게 리빌드해야 하기 때문입니다.
언리얼 엔진은 레이 트레이싱 씬을 빌드할 때 자체 교차 문제를 일으킬 수 있는 월드 포지션 오프셋을 디폴트로 무시합니다. 스태틱 메시 컴포넌트에서는 월드 포지션 오프셋 평가(Evaluate World Position Offset) 세팅으로 월드 포지션 오프셋을 레이 트레이싱 기능에 사용할지 여부를 선택할 수 있습니다. 그러나 별도로 지정하지 않는 한 카메라 주변의 가까운 거리(50미터) 이내에서만 작동합니다.
다음 방법으로 지원되는 카메라로부터의 거리를 활성화하고 조절합니다.
r.RayTracing.Geometry.StaticMeshes.WPO 1r.RayTracing.Geometry.StaticMeshes.WPO.CullingRadius 5000.0f
월드 포지션 오프셋으로 인한 다이내믹 BLAS 빌드는 GPU 프로파일러의 Scene > RayTracingGeometry > RayTracingDynamicGeometryUpdate 아래에 표시됩니다.
인스턴싱된 스태틱 메시 컴포넌트(Static Mesh Component)와 같은 인스턴싱된 컴포넌트는 디폴트로 막대한 비용이 드는 월드 포지션 오프셋을 지원하지 않습니다. 월드 포지션 오프셋 평가 토글이 있는 컴포넌트인 경우에도 월드 포지션 오프셋은 기본적으로 활성화하지 않습니다. 활성화하면 단일 메시에 있는 모든 인스턴스를 별도의 최하위 수준 가속화 구조로 변환시켜 메모리 부담과 렌더링 시간이 극심하게 증가할 수 있기 때문입니다.
레이 트레이싱 빌드 비용 관리하기
이 페이지의 이전 섹션에서 언급한 것과 같이 여러 메시 타입에서 다이내믹 지오메트리 빌드 경로를 사용하며, 이는 퍼포먼스에 부정적인 영향을 미칠 수 있습니다.
레이 트레이싱 메모리 비용 관리하기
레퍼런스 기반 레지던시
레이 트레이싱은 메모리 요구 사항을 대폭 늘릴 수 있습니다. 레이 트레이싱에 표시되는 각 메시에 대해 레이 트레이싱 최하위 수준 가속화 구조를 할당해야 합니다. 일반적으로 최하위 수준 가속화 구조에 대한 메모리 요구 사항은 트라이앵글/버텍스 수에 선형적으로 비례하지만 정확한 크기는 플랫폼에 따라 다릅니다. 또한 표시되는 모든 메시가 최하위 레벨 가속 구조를 할당하므로 상당한 양의 메모리를 소모할 수 있습니다.
이 문제를 해결하려면 TLAS에 의해 직접 레퍼런스되는 BLAS만 할당하는 레퍼런스 기반 레지던시(Reference Based Residency) 시스템을 사용할 수 있습니다. 이를 통해 남은 BLAS에 대한 메모리 예산을 지정할 수도 있습니다. 레퍼런스되지 않거나 예산을 초과하는 것은 모두 제거됩니다.
콘솔 명령 r.RayTracing.UseReferenceBasedResidency을 사용하여 레퍼런스 기반 레지던시 시스템을 활성화할 수 있습니다(기본적으로 활성화됨).
r.RayTracing.ResidentGeometryMemoryPoolSizeInMB를 사용하여 레이 트레이싱 지오메트리 풀의 크기를 제어할 수 있으며, 이는 플랫폼별로 조정할 수 있습니다.
이는 소프트 제한이며, LOD가 없는 메시는 제거되지 않고 영구적으로 유지됩니다. 레이 트레이싱 지오메트리에 적절한 LOD 구성을 보장하기 위해 렌더링(Rendering) > 레이 트레이싱 프록시 생성(Generate Ray Tracing Proxies)을 활성화할 수 있습니다. 이렇게 하면 모든 레이 트레이싱에 대한 LOD 구성이 레퍼런스 기반 레지던시에서 잘 작동합니다.
나나이트 예비 메시 생성
나나이트 예비 메시가 레이 트레이싱에만 사용되는 경우, 플랫폼(Platforms) > [플랫폼] > 나나이트 예비 메시 생성(Generate Nanite Fallback Meshes)을 토글할 수 있습니다. 비활성화하면 나나이트 예비 메시가 빌드에서 제거되며, 일반적으로 프로세스에서 많은 메모리가 절약됩니다. 레이 트레이싱은 대신 레이 트레이싱 프록시를 사용하며, 필요할 때 인덱스 및 버텍스 버퍼와 함께 요청 시 이를 스트리밍 인/아웃합니다.
나이아가라처럼 예비 메시가 필요한 개별 사례의 경우 사례별로 활성화할 수 있습니다. CPU 액세스 허용(Allow CPUAccess) 같은 세팅을 토글하여 예비 메시를 생성할 수 있습니다.
레이 트레이싱 모드
인라인 레이 트레이싱과 레이 트레이싱 셰이더를 모두 지원하는 플랫폼에서는 플랫폼별 옵션을 사용하여 레이 트레이싱 활성화 방식을 세밀하게 제어할 수 있습니다. 프로젝트 세팅의 플랫폼 > [플랫폼] > 레이 트레이싱 모드(Ray Tracing Mode)에서 찾을 수 있습니다.
여기에는 다음과 같은 모드가 포함되어 있습니다.
비활성화됨(Disabled): 이 플랫폼에서 모든 레이 트레이싱이 비활성화됩니다.
인라인(Inline): 표면 캐시가 있는 루멘 하드웨어 레이 트레이싱 모드 및 무게 중심/탐색 디버그 뷰 같은 인라인 레이 트레이싱 패스만 활성화됩니다. 이 모드에서는 레이 트레이싱 머티리얼 셰이더와 일부 글로벌 셰이더가 컴파일되지 않습니다. 따라서 레이 트레이싱 셰이더에 대한 바인딩을 준비할 필요가 없으므로 메모리와 CPU 비용이 절약됩니다.
전체(Full): 이 플랫폼에서는 레이 트레이싱의 모든 기능이 지원됩니다.
최상위 수준 가속화 구조 빌드
최상위 수준 가속화 구조는 프레임마다 리빌드되며, 렌더링 스레드, RHI 스레드, GPU 비용이 듭니다. 이러한 비용은 주로 가속화 구조에 들어가는 메시 인스턴스의 수에 비례합니다.
통계 명령 Stat SceneRendering를 사용하면 레이 트레이싱 인스턴스(Ray Tracing Instances) 아래에서 프레임마다 리빌드되는 인스턴스의 수를 확인할 수 있습니다.
렌더링 스레드 비용을 측정하려면 Stat SceneRendering 명령을 사용하고 GatherRayTracingWorldInstances를 찾습니다.
RHI 스레드 비용을 측정하려면 Stat D3D12RayTracing 같은 RHI별 통계를 사용하면 됩니다.
GPU 비용은 Stat GPU 통계 명령으로 측정할 수 있습니다. RayTracingScene 및 RayTracing 엔트리를 통해 비용에 대한 감을 잡아볼 수 있습니다.
차세대 콘솔에서 30fps라는 타깃 프레임 레이트를 달성하려면, 일반적으로 컬링 후 레이 트레이싱 씬에 100,000개 이하의 인스턴스가 있어야 합니다. Windows에서는 인스턴스 수가 크게 다를 수 있습니다.
컬링
레이 트레이싱이 있는 씬에서는 카메라 뷰 바깥의 오브젝트도 씬 안에 있어야 합니다. 리플렉션율이 높은 표면의 경우 특히 그렇습니다. 이러면 씬의 렌더링 비용이 증가합니다. 보이지 않거나 불필요한 오브젝트를 컬링하면 성능을 최적화하는 데 도움이 됩니다.
레이 트레이싱을 적용하려면 오브젝트가 뷰 바깥에 있을 때도 계속 표시되어야 하기 때문에 r.RayTracing.Culling 콘솔 변수에서 제공되는 몇 가지 옵션을 통해 현재 뷰 바깥에 표시되는 오브젝트와 그 거리를 최적화할 수 있습니다.
제공되는 옵션은 다음과 같습니다.
1 거리와 입체각을 기준으로 카메라 뒤에 있는 오브젝트를 컬링합니다(레이 트레이싱 컬링의 디폴트 메서드).
2 거리와 입체각을 기준으로 카메라 앞과 뒤에 있는 오브젝트를 컬링합니다.
3 거리 또는 입체각에 따라 카메라 앞과 뒤에 있는 오브젝트를 컬링합니다.
아래쪽에 있는 옵션일수록 더 많은 오브젝트를 레이 트레이싱 씬에서 컬링합니다.
최상위 수준 가속화 구조는 프레임마다 리빌드되기 때문에, 옵션 3으로 설정하면 메시 인스턴스가 카메라와의 거리나 각도를 기준으로 컬링될 수 있습니다.
또한 레이 트레이싱 컬링 옵션에서 사용하는 반경과 각도 자체도 다음 콘솔 명령을 통해 환경설정할 수 있습니다.
r.RayTracing.Culling.Radius: 오브젝트가 컬링되기 시작하는 카메라 주변 거리를 설정합니다. 디폴트 반경은 10,000(100미터)입니다.r.Raytracing.Culling.Angle: 투영 각도가 5도 미만인 메시를 컬링합니다. 디폴트값은 1입니다.
도시 샘플과 같은 오픈 월드 프로젝트의 경우, 워낙 반사 표면이 많고 넓은 영역이기 때문에 먼 거리에서도 오브젝트를 표시해야 했으므로 컬링 반경을 15000(150미터)으로 늘리고 컬링 각도는 0.5(2.5도)로 줄였습니다.
컬링은 레이 트레이싱 씬에서 커버리지 부족을 유발하며, 멀리 있는 지오메트리를 트레이싱할 수 있게 해 주는 원거리 필드(Far Field)와 함께 사용하면 좋습니다.
0을 초과하는 레이 트레이싱 그룹 ID(Ray Tracing Group Id)로 태그가 지정된 메시 컴포넌트는 r.RayTracing.Culling.UserGroupIds 1을 사용하여 집합적으로 컬링할 수 있습니다. 씬이 다양한 이질적인 부분들로 만들어졌지만 하나의 오브젝트로 컬링하고 싶은 경우에는 이 방법이 유용할 수 있습니다.
레이 트레이싱 그룹 ID 프로퍼티는 레벨에서 선택된 액터에서 찾을 수 있습니다.
레이 탐색 비용
레이 쿼리는 레이 트레이싱 섀도, 루멘 글로벌 일루미네이션, 루멘 리플렉션 같은 하드웨어 레이 트레이싱을 사용하는 기능에 의해 스폰됩니다. GPU는 가속화 구조를 탐색하며 히트를 찾는 전용 하드웨어로 이러한 레이 쿼리를 해결합니다.
프로파일 GPU 로그에 레이 탐색 비용이 출력되는 예시는 다음과 같습니다.
2.36ms LumenReflections 1 드로 1 프리미티브 0 버텍스 13 디스패치 4.1% 0.67ms ReflectionHardwareRayTracing [default] <indirect> 1 draw 1 prims 0 verts 1 dispatch 1 groups
레이 탐색 비용은 라이팅 기능으로 인한 레이 쿼리의 수와 씬 내 메시의 오버랩 양에 비례합니다.
메시가 오버랩되면 레이는 모든 메시를 각각 탐색하여 가장 가까운 히트를 찾아야 합니다. 레이 트레이싱은 두 가지 레벨의 가속화 구조를 사용하기 때문입니다. 이질적인 에셋을 필요에 따라 조립해서 빌드한(키트배싱(kitbashing)이라고도 함) 씬에서 메시가 오버랩되면 레이의 탐색 속도가 대단히 느려질 수 있습니다.
언리얼 엔진 5 기술 데모 ‘에인션트의 협곡'에서 암석 레이어링에 사용된 키트배싱 에셋의 예시입니다.
씬이 하드웨어 레이 트레이싱과 호환되게 하려면 메시 오버랩을 반드시 최소로 유지해야 합니다.
그 밖에도 레이 탐색 비용을 높이는 몇 가지 흔한 원인이 있습니다. 첫째는 스카이 박스입니다. 스카이 박스는 씬 전체와 오버랩되므로, 모든 레이가 적중되지 않더라도 스카이 박스를 탐색해야 합니다. 다른 하나는 그래스입니다. 그래스는 바운드가 크고 지오메트리가 매우 복잡합니다.
이런 경우(또는 기타 비슷한 경우), 레이 트레이싱에서 해당 메시를 생략하도록 선택할 수 있습니다. 월드에 있는 해당 액터를 선택하고 '디테일(Details)' 패널에서 레이 트레이싱에서 표시(Visible in Ray Tracing)를 비활성화하면 됩니다.
레이 탐색 디버그 시각화 모드
다음 두 디버그 모드는 현재 콘솔 플랫폼에서만 사용 가능합니다.
높은 탐색 비용을 파악하는 데 유용한 디버그 모드가 두 가지 있는데, 퍼포먼스와 탐색이 그것입니다.
이러한 모드를 활성화하려면 다음 명령을 사용합니다.
show raytracingdebug 1
r.RayTracing.DebugVisualizationMode [mode]'[mode]'는 Performance 또는 Traversal Node 중 원하는 시각화 방법으로 대체하면 됩니다. 예를 들어 r.RayTracing.DebugVisualizationMode Traversal Node와 같이 대체할 수 있습니다.
퍼포먼스 디버그 시각화
퍼포먼스 디버그 시각화는 트레이스 레이 호출의 히트 맵을 보여주며, 바운딩 볼륨 계층구조 탐색과 머티리얼 평가 시간(가장 가까운 히트/미스 셰이더 실행)의 합계를 표시합니다.
레이 트레이싱 퍼포먼스 디버그 시각화
시각화 색상은 보라색(무비용)에서 노란색(고비용) 사이로 표시됩니다. 히트 맵의 스케일은 r.RayTracing.DebugTiming Scale을 사용하여 프로젝트에 맞게 조절할 수 있습니다.
이 모드는 레이 트레이싱에 문제를 일으키는 오브젝트와 머티리얼을 찾는 데 가장 유용합니다. 레이 트레이싱 비용이 너무 높으면 해당 모드에 표시되는 내용이 합리적인지 확인하는 것이 좋습니다.
예를 들어 메인 뷰에서 표시되는 오브젝트가 디버그 모드에서도 표시되는지, 원치 않는 오브젝트가 표시되지 않는지, 머티리얼 비용도 해당 오브젝트에 대하여 예상한 대로인지 확인할 수 있습니다. 눈에 띄는 것이 없다면 하나의 오브젝트 때문에 느려진 것이 아니라 여러 작은 문제가 결합된 것일 수 있습니다.
탐색 디버그 시각화
탐색 디버그 시각화는 바운딩 볼륨 계층구조 탐색의 히트 맵(히트를 찾기까지 필요한 반복작업의 현황)만 표시합니다. 머티리얼을 사용하지 않는 루멘 패스나 단순한 히트 셰이딩/인라인을 사용하는 유사한 패스의 경우, 일반적으로 바운딩 볼륨 계층구조 탐색에서 가장 높은 비용이 발생합니다.
히트 맵의 색은 초록색(반복작업 거의 없음)에서 빨간색(반복작업 많음) 사이입니다. 반복이 많을수록 탐색 속도가 느려진다는 것은 직관적으로 알 수 있습니다. 보통 씬의 반복 값은 50~100회 범위입니다. 하이 폴리곤 메시가 여러 번 오버랩되는 복잡한 씬에서는 약 100~150회의 반복작업이 발생합니다.
횟수가 이보다 많으면 문제가 있을 수 있습니다. 예를 들어 메시가 파손된 경우 1000회 이상의 반복작업도 드물지 않게 나타납니다. 탐색 트라이앵글 디버그 시각화는 개별 메시 트라이앵글을 확인하는 데 유용합니다.
탐색 디버깅은 세 가지 모드 중에서 선택할 수 있습니다.
| 탐색 디버그 모드 | 명령 이름 | 설명 | 시각화 뷰 |
|---|---|---|---|
노드 교차점 수 |
| 씬 탐색 비용을 조사하는 데 사용됩니다. 예를 들어 최상위 수준 가속화 구조에서 많은 인스턴스가 오버랩될 때 사용할 수 있습니다. 최하위 수준 가속화 구조를 내부적으로, 플랫폼별로 표현하는 BVH 노드입니다. | |
트라이앵글 교차점 수 |
| 트라이앵글만 포함된 노드(리프 노드)의 히트를 표시합니다. | |
총 교차점 수 |
| BVH 노드 히트와 트라이앵글 노드 히트의 합계입니다. |
히트 셰이딩 비용
레이가 트라이앵글에 닿으면 머티리얼이 평가되고 히트 포인트를 셰이딩하는 데 사용됩니다. 프로시저럴 텍스처링을 사용하는 복잡한 머티리얼과 기타 많은 버추얼 텍스처의 경우, 이 프로세스에 매우 높은 비용이 들 수 있습니다.
Ray Tracing Quality Switch 노드는 셰이딩 레이의 히트를 보다 저렴하게 구현하기 위해 머티리얼에 사용할 수 있는 표현식입니다.
이 노드는 머티리얼 로직의 모든 부분을 대체하여 레이 트레이싱의 전체 비용을 낮출 수 있습니다. 이 노드를 사용하면 이 머티리얼의 모든 레이 트레이싱 이펙트에 영향이 갑니다.
간단한 예로(아래 참고) 레이 트레이싱 이펙트를 내기엔 비용이 많이 드는 로직이 포함된 머티리얼을 들 수 있습니다. Ray Tracing Quality Switch 노드에는 노멀 및 레이 트레이스드 등 두 개의 입력이 포함되어 있습니다.
노멀(Normal) 입력에는 머티리얼에 필요한 모든 로직을 포함하며 월드 표면에서 어떻게 보일지가 지정합니다. 레이 트레이스드(RayTraced) 입력은 노멀 맵처럼 레이 트레이싱 이펙트의 비용을 높이는 로직 경로의 복잡성이 덜한 편입니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
원거리 필드
레이 트레이싱은 기본적으로 루멘 글로벌 일루미네이션 및 리플렉션을 카메라에서 1km까지 확장하는 원거리 필드 표현을 지원합니다. 원거리 필드는 기본적으로 월드 파티션으로 생성된 계층형 레벨 오브 디테일(Hierarchical Level of Detail, HLOD) 메시를 사용합니다. HLOD1 메시는 파 필드 표현에 사용됩니다.
현재는 루멘 라이팅 기능에만 레이 트레이싱 원거리 필드를 활용할 수 있으며, 그러려면 r.LumenScene.FarFields 1 명령을 통해 프로젝트에서 활성화해야 합니다.
원거리 필드에서 표시할 메시를 선택하고 레이 트레이싱 원거리 필드(Ray Tracing Far Field) 세팅을 토글하면 됩니다.
에디터에서 원거리 필드를 시각화하려면 FarField에 대한 레이 트레이싱 디버그 시각화 모드를 사용합니다. 다음 명령어를 입력하면 됩니다.
r.RayTracing.DebugVisualizationMode FarField
Showflag.RayTracingDebug 1아래의 시각화 자료에서, 파 필드는 월드 파티션으로 생성된 HLOD1 메시를 사용하는 빨간색 톤의 지오메트리입니다. 이보다 카메라에 더 가까운 것은 고도로 디테일한 지오메트리입니다.
루멘의 레이 트레이싱 원거리 필드 디버그 시각화입니다. 원거리 필드 지오메트리는 빨간색 톤입니다.
추가 레이 트레이싱 디버그 시각화 모드
레이 트레이싱 디버그(Ray Tracing Debug) 시각화 모드를 사용하여 레이 트레이싱 씬에 대한 정보를 수집할 수 있습니다.
레벨 뷰포트에서 뷰 모드(View Modes) 드롭다운으로 선택하거나 콘솔 명령 r.RayTracing.DebugVisualizationMode 뒤에 시각화 모드 이름을 입력하여 이러한 시각화 모드를 이용할 수 있습니다.
선택 툴 디버그 시각화 모드
선택 툴(Picker) 디버그 시각화 모드에서는 레이 트레이싱 지오메트리 및 커서 아래의 인스턴스에 대한 정보가 표시됩니다. 선택 툴 모드는 트라이앵글(Triangles) 및 인스턴스(Instances)라는 두 가지 다른 도메인에서 작동할 수 있습니다.
콘솔 명령 r.RayTracing.Debug.PickerDomain 뒤에 트라이앵글은 0*을, 인스턴스는 1 을 입력하여 두 모드 간에 교체할 수 있습니다.
뷰포트의 왼쪽에는 현재 사용 중인 선택 툴 도메인과 더불어 레이 트레이싱 지오메트리 정보가 표시됩니다.
다이내믹 인스턴스 디버그 시각화 모드
다이내믹 인스턴스(Dynamic Instance) 디버그 시각화 모드에서는 레이 트레이싱 씬 내의 다이내믹 인스턴스를 표시합니다. 프레임마다 다이내믹 인스턴스가 리빌드되며 스태틱 인스턴스는 빨간색으로, 다이내믹 인스턴스는 녹색으로 표시됩니다.