메가라이트는 언리얼 엔진 5의 완전히 새로운 직접광 패스로, 아티스트가 그 어느 때보다 다이내믹한 섀도 에어리어 라이트를 배치할 수 있게 해줍니다.
메가라이트는 현세대 콘솔을 지원하도록 디자인되었으며, 레이 트레이싱을 활용하여 다양한 타입의 에어리어 라이트에서 사실적인 소프트 섀도를 구현합니다.
메가라이트는 다이내믹 섀도잉 비용은 물론 섀도잉되지 않은 라이트 평가 비용도 줄여주므로 텍스처링된 에어리어 라이트처럼 값비싼 라이트 소스를 콘솔에서도 사용할 수 있습니다.
메가라이트는 또한 볼류메트릭 포그를 지원합니다.
메가라이트 사용하기
'프로젝트 세팅(Project Settings)'의 렌더링(Rendering) > 직사광(Direct Lighting) 카테고리에서 메가라이트를 활성화할 수 있습니다. 이렇게 하면 메가라이트에 권장되는 세팅인 하드웨어 레이 트레이싱 지원(Support Hardware Ray Tracing)도 활성화하라는 메시지가 표시됩니다.
활성화하면 모든 로컬 라이트가 메가라이트 시스템에 의해 처리됩니다. 메가라이트는 메가라이트 허용(Allow MegaLights) 라이트 컴포넌트 프로퍼티를 사용하여 라이트별로 비활성화할 수 있습니다. 메가라이트 섀도 메서드(MegaLights Shadow Method)를 설정하여 섀도잉 소스를 레이 트레이싱(디폴트) 또는 버추얼 섀도 맵(Virtual Shadow Map, VSM) 중에 선택할 수도 있습니다.
버추얼 섀도 맵은 단순화되지 않은 나나이트 지오메트리에서 직접 그림자를 드리우지만 에리어 섀도의 근사치만 계산합니다. 섀도 맵 뎁스를 미리 준비하면 라이트별로 VSM의 CPU, 메모리, GPU 시간 오버헤드가 발생합니다.
단일 프로젝트 내에서 보다 세밀하게 제어하기 위해 포스트 프로세스 볼륨 세팅을 사용하여 메가라이트를 활성화하거나 비활성화할 수 있습니다.
메가라이트는 r.MegaLights.Allow 0을 사용하여 엔진 퀄리티 레벨 또는 디바이스 프로파일별로 비활성화할 수 있습니다.
기법 개요
메가라이트는 확률적 직접광 기법으로, 라이트의 중요도 샘플링을 통해 직접광을 솔브합니다. 중요한 라이트 소스를 향하는 픽셀마다 고정된 수의 레이를 트레이싱합니다. 라이트 소스가 레이에 히트하면 해당 라이트의 기여도가 현재 픽셀에 추가됩니다.
이 접근법에는 다음과 같은 몇 가지 중요한 의미가 있습니다.
직접광이 단일 패스에 의해 통합된 방식으로 처리되며, 기존의 여러 디퍼드 렌더러 섀도잉 및 셰이딩 기법을 대체합니다.
메가라이트는 섀도잉 비용을 줄여줄 뿐만 아니라 셰이딩 자체의 비용도 줄여줍니다.
메가라이트는 퍼포먼스 오버헤드가 일정하지만, 지정된 픽셀에서 라이팅 복잡도가 증가하면 퀄리티가 떨어질 수 있습니다.
디퍼드 셰이딩에서는 라이팅 퀄리티가 일정한 경우 GPU 비용은 라이트의 수에 따라 증가합니다. 반면에 메가라이트에서는 퍼포먼스가 일정하지만 퀄리티는 지정된 픽셀의 라이팅 복잡도에 따라 달라집니다.
메가라이트는 다음과 같은 기능을 대체합니다.
섀도 맵 디스턴스 필드 섀도
레이 트레이싱된 섀도
디퍼드 셰이딩(BRDF 및 라이트 평가)
볼류메트릭 포그 섀도잉 및 라이트 평가
버추얼 섀도 맵 투영
개별 라이트 액터 세팅에서 버추얼 섀도 맵을 섀도 메서드로 선택하면 메가라이트와 함께 사용할 수 있습니다.
기본적으로 메가라이트는 미세한 디테일을 포착하기 위해 먼저 짧고 안정적인 스크린 스페이스 레이를 트레이싱합니다. 단순화된 레이 트레이싱 씬에서는 이 기능을 사용할 수 없을 수도 있습니다. 이러한 레이가 화면 밖으로 나가거나, 오브젝트 뒤로 이동하거나, 최대 길이에 도달하면 메가라이트는 하드웨어 또는 소프트웨어 레이 트레이싱을 사용하여 마지막으로 유효한 위치에서 트레이싱을 계속합니다. 메가라이트는 버추얼 섀도 맵을 레이 트레이싱하도록 환경설정될 수도 있지만, 섀도는 라이트별로 섀도 맵을 생성해야 하므로 추가 선행 비용이 발생하는 반면 BVH(레이 트레이싱 씬)는 씬의 모든 라이트에 대해 한 번 생성됩니다.
메가라이트의 레이 가이딩은 중요한 라이트 소스를 선택하는 데 유용하며, 지정된 픽셀에 영향을 미칠 가능성이 높은 라이트에 더 많은 샘플을 전송하는 데 핵심적입니다. 결과적으로 레이 가이딩은 가려질 가능성이 높은 라이트처럼 영향이 적은 라이트에 더 적은 샘플을 전송합니다. 이는 이 기법에서 중요한 부분으로, 고정된 픽셀당 라이트 샘플 예산에서 최고의 라이팅 퀄리티를 얻을 수 있게 해줍니다. 레이 가이딩은 가려진 라이트 소스에 전송되는 레이의 수를 줄이지만, 여전히 이를 주기적으로 샘플링하여 현재 프레임에 표시되는지 여부를 확인해야 합니다. 이 점을 염두에 두고 바운드가 커서 전체 씬에 영향을 미치는 라이트 소스를 배치하는 것은 피해야 합니다.
마지막으로, 누적된 모든 라이팅은 노이즈 제거 툴을 거칩니다. 이 노이즈 제거 툴은 노이즈 가능성이 있는 통계적 입력을 바탕으로 고퀄리티 직접광을 재생성하려고 시도합니다. 씬에서 라이팅 복잡도가 증가함에 따라 노이즈 제거 툴은 이를 처리하기 위해 더 많은 작업을 수행해야 합니다. 라이팅 복잡도가 증가하면 라이팅의 블러링이나 고스팅이 발생할 수 있습니다. 작은 라이트 소스를 큰 에어리어 라이트로 병합하고 라이트 소스의 바운드를 신중하게 좁혀 최종 라이팅 퀄리티를 향상하면 이러한 현상을 방지할 수 있습니다.
라이팅 복잡도
예산과 픽셀당 샘플 수가 고정되어 있기 때문에 단일 픽셀에 영향을 미칠 수 있는 중요 라이트의 수에는 제한이 있으며, 이 제한을 초과하면 노이즈 제거 툴에 크게 의존하게 됩니다. 이는 노이즈 제거 툴이 흐릿한 라이팅을 유발하고 씬에 노이즈 또는 고스팅을 유발하는 원인이 됩니다. 라이트 어테뉴에이션 범위를 좁히고 라이트 소스 클러스터를 단일 에어리어 라이트로 대체하여 라이트 배치를 최적화하는 것이 중요합니다.
씬 내에서 메가라이트가 계속 잘 작동하도록 하려면 씬 지오메트리 안에 라이트를 배치하지 않고 라이트의 바운드를 최적화하는 것이 가장 좋습니다. 콘솔 명령 r.MegaLights.Debug 1을 사용하여 선택된 픽셀에서 레이가 전송되는 위치를 시각화할 수 있습니다. 이 콘솔 명령 r.ShaderPrint.Lock 1을 사용하여 선택된 레이를 프리즈할 수 있습니다. 그러면 씬을 돌아다니면서 트레이스된 레이를 검사할 수 있습니다.
메가라이트가 언리얼 엔진의 정식 버전 기능으로 개발됨에 따라 추가적인 시각화 툴이 제공될 예정입니다.
아래 예시에서는 텍스처 렉트 라이트의 일부가 벽 안에 있으며, 비록 보이지는 않지만 여전히 메가라이트에 의해 샘플링되어야 합니다. 이는 벽으로 트레이싱되는 일부 레이를 보여주는 시각화에서 확인할 수 있습니다. 텍스처링된 렉트 라이트의 소스 너비(Source Width) 및 소스 높이(Source Height)는 라이트 소스가 이 아치를 채우되 지나치지 않도록 좁히는 것이 이상적입니다.
노이즈를 최소화하려면 지오메트리 내부에 라이트를 배치하지 말고 라이트 어테뉴에이션 범위, 스포트라이트 원뿔 각도, 렉트 라이트 반 도어(barn door)를 최적화하여 라이트의 영향을 줄여야 합니다.
레이 트레이싱 씬
기본적으로 메가라이트는 레이 트레이싱을 사용하며, 섀도 퀄리티는 레이 트레이싱 씬 표현 퀄리티에 따라 달라집니다. 퍼포먼스 측면에서 레이 트레이싱 씬은 자동으로 단순화된 나나이트 메시를 사용하여 빌드되며, 메인 뷰보다 더 적극적인 컬링 세팅을 사용합니다. 이로 인해 섀도 아티팩트, 누수 또는 누락이 발생할 수 있습니다.
레이 트레이싱 씬 시각화는 섀도잉 문제를 조사하기 위한 좋은 출발점으로 활용할 수 있습니다. 메가라이트가 레이 트레이싱하는 실제 씬 표현을 보여줍니다. 다음을 사용하여 레이 트레이싱 씬을 시각화할 수 있습니다.
레벨 뷰포트의 뷰 모드 메뉴에 있는 레이 트레이싱 디버그(Ray Tracing Debug) 뷰 모드 중 하나를 사용합니다. 레이 트레이싱 디버그 뷰 모드는 콘솔 명령
show RayTracingDebug 1및r.RayTracing.DebugVisualizationMode = "World Normal"을 통해서도 사용할 수 있습니다.루멘 개요(Lumen Overview) 뷰 모드는 레이 트레이싱 씬과 메인 뷰를 동시에 볼 수 있는 화면 속 화면(Picture-In-Picture, PiP) 시각화를 지원합니다. 루멘 개요 뷰 모드는 콘솔 명령
r.Lumen.Visualize 1로도 사용할 수 있습니다.
거리에 따라 일부 섀도가 누락되거나 사라지는 경우, 레이 트레이싱 씬 컬링 때문일 수 있습니다. r.RayTracing.Culling.* 아래에서 콘솔 명령을 사용하여 컬링 조정을 시작할 수 있습니다. 컬링 모드, 반경, 입체각 변수를 살펴보는 것이 좋습니다.
컬링을 위해 레이 트레이싱 그룹 ID(Ray Tracing Group Id)를 사용하여 작은 오브젝트를 병합하고, 병합된 바운드를 사용하여 함께 컬링할 수 있습니다.
레이 트레이싱 씬 컬링 컨트롤에 대한 자세한 내용은 레이 트레이싱 퍼포먼스 가이드를 참고하세요.
레이 트레이싱 씬은 자동으로 단순화된 나나이트 예비 메시를 기반으로 합니다. 디폴트 세팅을 사용하면 섀도잉에 사용하기에는 퀄리티가 너무 낮아 수동으로 조정해야 하는 예비 메시가 되는 경우가 있습니다. 이렇게 하려면 다음 단계를 따릅니다.
스태틱 메시 에디터에서 메시를 엽니다.
'디테일(Details)' 패널의 나나이트 세팅(Nanite Setting) 아래에서 예비 타깃(Fallback Target)을 상대 오차(Relative Error)로 설정합니다.
예비 상대 오차(Fallback Relative Error)라는 새 세팅이 표시되며, 해당 값을 설정할 수 있습니다. 값을 줄이면 나나이트 예비 메시의 트라이앵글 수와 퀄리티가 증가합니다.
완료되면 변경사항 적용(Apply Changes)을 클릭하여 나나이트 예비 메시를 리빌드합니다.
나나이트 예비 메시 구성에 대한 자세한 내용은 나나이트 가상화된 지오메트리를 참고하세요.
레이 트레이싱 씬에 포함된 나나이트 예비 메시 트라이앵글 수와 인스턴스 수는 레이 트레이싱 BVH 빌드 시간, 사용된 메모리, 레이 트레이싱 퍼포먼스에 영향을 미칩니다. 따라서 프로젝트의 가용 퍼포먼스 및 메모리 예산에 따라 신중하게 늘리는 것이 좋습니다.
비리얼타임 렌더링의 경우에는 r.RayTracing.Nanite.Mode 1을 사용할 수도 있습니다. 이렇게 하면 전체 디테일의 나나이트 메시에서 레이 트레이싱 씬을 빌드할 수 있습니다. 이는 퍼포먼스 및 메모리 비용이 크며, 나나이트 LOD 컷이 변경되어 BVH를 리빌드해야 할 때 씬 또는 카메라 애니메이션 동안 히치가 발생할 수 있습니다.
스크린 스페이스 트레이스
메가라이트는 더 큰 지오메트리의 디테일을 위해 섀도를 캐스팅할 때 레이 트레이싱 씬을 사용하지만, 단순화된 레이 트레이싱 씬에서 누락될 수 있는 작은 스케일의 지오메트리에는 스크린 스페이스 트레이스를 활용합니다. 스크린 스페이스 트레이스는 씬 뎁스를 사용하며 화면에 보이는 모든 것에 적중합니다. 이로 인해 씬 뎁스에 영향을 미치지 않고 레이 트레이싱 씬에만 존재하며 보이지 않는 섀도 캐스터 같은 문제가 특정 아트 디렉션 미세조정에서 발생할 수 있습니다.
레이 트레이싱 씬 커버리지를 넘어서는 트레이스의 경우(또는 원거리 필드 표현이 너무 거친 경우) 메가라이트는 원거리 스크린 트레이스를 지원합니다. 원거리 스크린 트레이스의 길이는 r.MegaLights.DistantScreenTraces.Length를 사용하여 화면의 퍼센티지로 정의됩니다.
섀도잉 메서드
메가라이트는 두 가지 섀도잉 메서드를 노출하며, 라이트 컴포넌트의 프로퍼티를 사용하여 라이트별로 선택할 수 있습니다.
레이 트레이싱이 디폴트이며 권장되는 방법입니다. 라이트당 추가 비용이 발생하지 않으며 올바른 에어리어 섀도를 구현할 수 있습니다. 단점은 섀도의 퀄리티가 단순화된 레이 트레이싱 씬에 따라 달라진다는 것입니다.
버추얼 섀도 맵은 버추얼 섀도 맵에 대해 레이를 트레이스합니다. 버추얼 섀도 맵은 래스터화를 사용하여 라이트별로 생성되며, 전체 나나이트 메시 디테일을 캡처할 수 있습니다. 단점은 에리어 섀도의 근사치만 계산할 수 있으며, 섀도 뎁스를 생성하는 데 사용되는 메모리, CPU, GPU 오버헤드 측면에서 라이트별로 추가 비용이 상당히 높다는 것입니다. 따라서 적절히 사용하는 것이 좋습니다.
기본적으로 모든 라이트, 특히 섀도가 더 부드럽거나 라이트가 덜 중요하고 더 큰 에어리어 라이트 소스는 레이 트레이싱을 사용해야 합니다. 더 부드러운 라이트는 정밀한 섀도 캐스터가 필요하지 않기 때문입니다. 또한 레이 트레이싱 씬에 더 많은 예산을 할당하는 것이 좋습니다. 레이 트레이싱 표현 퀄리티가 높을수록 더 많은 라이트가 더 비용이 낮은 레이 트레이싱 패스를 통과할 수 있기 때문입니다.
라이트 함수
라이트 함수는 라이트 함수 아틀라스와 호환되고 프로젝트 세팅에서 라이트 함수 아틀라스가 활성화된 경우 지원됩니다.
알파 마스킹
기본적으로 스크린 스페이스 트레이스만 알파 마스크드 표면을 올바르게 처리할 수 있습니다. r.MegaLights.HardwareRayTracing.EvaluateMaterialMode 1 콘솔 명령을 사용하여 레이 트레이싱에 대한 알파 마스킹 지원을 활성화할 수 있습니다. 이 옵션을 활성화하면 큰 퍼포먼스 오버헤드가 발생하므로, 가능하다면 콘텐츠에서 알파 마스킹은 사용하지 않는 것이 좋습니다.
디렉셔널 라이트
디렉셔널 라이트는 기본적으로 비활성화되어 있으며, r.MegaLights.DirectionalLights 1을 사용하여 수동으로 활성화해야 합니다. 이는 다양한 제한 사항으로 인해 수평선으로 뻗어나가는 고퀄리티의 선명한 태양 섀도보다 달빛처럼 어둡고 부드러운 디렉셔널 라이트에 더 적합하기 때문입니다.
디렉셔널 라이트 섀도의 퀄리티는 원거리의 레이 트레이싱 표현에 의해 크게 좌우되며, 이는 BVH 빌드 및 탐색 오버헤드로 인해 어려울 수 있습니다. 이러한 문제 중 일부는 원거리 필드를 활성화하여 숨길 수 있습니다.
디렉셔널 라이트가 강하면 일부 샘플이 보이지 않는 디렉셔널 라이트 쪽으로 리디렉션될 수 있습니다. 이러한 라이트는 최종 픽셀에 영향을 미치지 않으므로 실내에 노이즈가 생길 수 있습니다. 포스트 프로세스 볼륨을 배치하여 디렉셔널 라이트를 실내에서 어둡게 하거나 비활성화하면 이 문제를 해결할 수 있습니다.
원거리 필드
메가라이트는 원거리 필드 트레이스를 구현하는데, 이를 통해 매우 단순화되고 병합된 HLOD1 메시를 트레이싱하여 비교적 낮은 오버헤드로 TLAS 컬링 범위를 넘어 섀도 레이 범위를 확장할 수 있습니다.
원거리 필드 트레이스는 DefaultEngine.ini 환경설정 파일의 콘솔 변수 r.MegaLights.HardwareRayTracing.FarField에 의해 활성화되며, 월드 파티션의 계층형 레벨 오브 디테일(Hierarchical Level of Detail, HLOD)을 사용해야 합니다. 파 필드를 빌드하려면 HLOD1을 사용해야 합니다.
릿 반투명 및 볼류메트릭 포그
메가라이트는 반투명 라이팅 볼륨 및 볼류메트릭 포그와 통합되어 해당 볼륨의 라이팅 및 섀도잉을 확률적으로 평가합니다.
섀도잉은 r.MegaLights.Volume.GridPixelSize 및 r.MegaLights.Volume.GridSizeZ로 해상도가 정의된 통합 프록셀 볼륨을 사용하여 계산됩니다. 볼륨의 커버리지는 r.TranslucencyLightingVolume.OuterDistance 및 활성 익스포넨셜 하이트 포그 컴포넌트의 뷰 디스턴스를 기반으로 자동 확장됩니다.
이 세팅을 변경하면 라이팅포함 반투명 및 볼류메트릭 포그의 섀도잉 퀄리티에 영향을 미칩니다.
포워드 셰이딩
포워드 셰이딩은 현재 라이팅포함 반투명에 사용된 것과 동일한 볼륨을 사용하여 계산됩니다. 특히 스페큘러 라이팅은 표면 주변의 전체 라이팅의 근사치를 구하는 구면 하모닉에서 단일 라이트를 추출하여 근사치가 계산됩니다.
파티클 라이트
메가라이트는 파티클 라이트를 지원하지만, 현재는 나이아가라 시스템에서 스폰된 라이트만 지원합니다. 파티클 라이트는 메가라이트로 처리할 때 그림자를 드리울 수도 있습니다.
기본적으로 파티클 라이트는 사용자가 에셋에서 명시적으로 활성화한 경우에만 메가라이트에 의해 처리됩니다. 이 비헤이비어는 콘솔 변수 r.MegaLights.SimpleLightMode를 사용하여 변경할 수 있습니다. 2로 설정하면 메가라이트가 모든 파티클 라이트를 처리하며, 섀도 캐스팅은 여전히 에셋별로 활성화되어야 합니다. 0으로 설정하면 메가라이트의 파티클 라이트가 비활성화됩니다.
나이아가라 이미터에서 메가라이트를 활성화하는 방법은 다음과 같습니다.
이미터 아래에서 라이트 렌더러(Light Renderer) 모듈을 선택합니다.
디테일(Details) 패널에서 메가라이트 허용(Allow Mega Lights) 및 메가라이트 그림자 드리우기(Mega Lights Cast Shadows)를 활성화합니다.
두 번째 세팅을 체크하면 파티클 라이트가 그림자를 드리웁니다.
첫 번째 세팅을 체크하면 스폰된 라이트에서 메가라이트가 활성화됩니다.
이미터는 많은 라이트를 스폰할 수 있으므로 강한 라이트가 너무 많아 화면 픽셀에 동시에 영향을 미치지 않도록 주의해야 합니다. 그렇지 않으면 퀄리티가 눈에 띄게 떨어질 수 있습니다. 라이트를 작게 유지하고, 공간에 적게 배치하고, 적은 수의 파티클 라이트에서만 섀도 캐스팅을 활성화하는 것을 권장합니다.
엔진 퀄리티(Scalability)
메가라이트의 확장성을 위한 주요 컨트롤은 다음과 같습니다.
r.MegaLights.DownsampleMode는 샘플링 및 트레이싱을 위한 다운샘플 인수를 제어합니다.r.MegaLights.NumSamplesPerPixel은 픽셀당 수행되는 샘플 및 트레이스 수를 제어합니다.
라이팅 퀄리티를 고사양 PC나 오프라인 렌더링 수준으로 스케일링하는 것은 아직 개발 중이지만, r.MegaLights.DownsampleMode 0 및 r.MegaLights.NumSamplesPerPixel 16 명령으로 최고의 퀄리티를 구현할 수 있습니다.
볼류메트릭 포그 및 헤어 스트랜드에 대한 라이팅의 확장성을 위해 r.MegaLights.volume.* 아래에서 콘솔 변수를 사용하여 라이팅 퀄리티를 조정할 수 있습니다.
메가라이트는 아직 무비 렌더 큐를 지원하지 않지만, 안티 에일리어싱 메서드로 템포럴 슈퍼 해상도(Temporal Super Resolution, TSR)를 사용하거나 템포럴 샘플 수를 약 8로 설정하여 라이팅을 올바르게 리졸브하여 좋은 결과를 얻을 수 있습니다.
퍼포먼스
퍼포먼스를 비교할 때는 메가라이트가 모든 직접광을 솔브하며, 다음과 같이 다양한 디퍼드 렌더러 패스를 대체한다는 점을 이해하는 것이 중요합니다.
섀도 뎁스: 섀도 맵 또는 버추얼 섀도 맵을 사용하는 경우
RenderDeferredLighting::Lights
InjectTranslucencyLightingVolume
VolumetricFog::Shadowed Lights
VolumetricFog::LightScattering에서 라이트 평가 제거
퍼포먼스에 영향을 미치는 요인:
퍼포먼스는 대부분 내부 렌더링 해상도에 따라 달라집니다.
레이 트레이싱은 메가라이트 비용에서 두 번째로 큰 부분을 차지합니다. 비용은 레이 트레이싱 씬의 인스턴스 수, 인스턴스의 복잡도, 오버랩되는 인스턴스의 양, 프레임마다 업데이트해야 하는 다이내믹 트라이앵글의 양 등 여러 요인에 따라 달라집니다. 레이 트레이싱 씬 최적화에 대한 자세한 내용은 레이 트레이싱 퍼포먼스 가이드를 참고하세요.
각 라이트별로 섀도 맵 뎁스를 생성하기 위해 메모리, CPU, GPU 오버헤드가 추가로 발생하며, 섀도잉에 레이 트레이싱 대신 버추얼 섀도 맵을 사용합니다.
복잡한 BRDF가 있고 무거운 라이트 타입(텍스처링된 렉트 라이트)의 영향을 받는 화면의 픽셀에는 약간의 비용이 듭니다.
메가라이트 비용은 대체로 일정하며, 섀도가 없는 라이트와 있는 라이트 간에 큰 차이가 없으므로 씬의 모든 라이트에서 섀도를 활성화할 수 있습니다.
메가라이트는 루멘 HWRT와 함께 사용하여 두 시스템 간에 레이 트레이싱 씬 오버헤드 및 최적화를 공유하는 것이 이상적입니다.
Stat GPU는 메가라이트 패스를 포함한 GPU 타이밍 개요를 보여줍니다. 내장된 ProfileGPU 또는 서드 파티 프로파일러를 사용하여 타이밍을 세부적으로 분석할 수 있습니다.
언리얼 엔진은 비동기 연산을 사용하여 다양한 기능의 여러 디스패치를 오버랩합니다. r.RDG.AsyncCompute 0 콘솔 명령을 사용하여 비동기 연산을 비활성화하지 않으면 Stat GPU 및 ProfileGPU 타이밍이 왜곡됩니다.
메가라이트는 완전히 GPU 기반이지만, 여전히 라이트별 레거시 CPU 비용이 약간 발생합니다. 모든 라이트가 레이 트레이싱을 사용하는 메가라이트인 경우, 라이트별 CPU 비용 대부분은 콘솔 명령 r.Visibility.LocalLightPrimitiveInteraction 0을 사용하여 제거할 수 있습니다.
제한 사항
일반적인 제한 사항:
메가라이트는 포워드 렌더러와 호환되지 않습니다.
현재 향상해야 할 제한 사항은 다음과 같습니다.
레거시 라이트별 CPU 오버헤드 트래킹 프리미티브 인터랙션이 있지만, 메가라이트에는 필요하지 않습니다.
디렉셔널 라이트 클라우드 섀도는 지원되지 않습니다.
서브서피스 스캐터링 두께 추정은 지원되지 않습니다.
워터, 클라우드, 불균질 볼륨 및 로컬 볼류메트릭은 지원되지 않습니다.
Platform Support
메가라이트는 현세대 콘솔(PlayStation 5, Xbox Series X | S 등)과 레이 트레이싱 기능을 지원하는 PC용으로 디자인되었습니다.
메가라이트는 모바일, Switch 또는 이전 세대 콘솔(PlayStation 4, Xbox One) 등은 지원하지 않습니다.