리얼타임 레이 트레이싱

언리얼 엔진 4 레이 트레이싱의 개요입니다.

Windows
MacOS
Linux

레이 트레이싱 기술은 오랫동안 영화, TV, 그리고 포토리얼 이미지 시각화 렌더링에 쓰였지만, 이미지나 프레임 하나를 렌더링할 때도 고성능 컴퓨터와 오랜 시간이 필요했습니다. 영화와 TV의 경우에는 고퀄리티 이미지 시퀀스를 렌더링하려면 몇 시간이나 며칠이 걸리기도 하지만, 최종 결과물은 실물과 버금갈 정도로 실감 나는 3D 콘텐츠를 만들 수 있습니다. 건축 시각화 업체는 레이 트레이싱으로 자동차 업계를 위해 아름다운 렌더를 만들거나, 집이나 사무실이 빼곡한 현실적 환경을 조성했습니다.  

언리얼 엔진 4(UE4)의 역량과 리얼타임 레이 트레이싱(Real-Time Ray Tracing, RTRT) 의 결합 덕분에 여러 오프라인 렌더러와 비교해도 될 정도로 현실적인 라이팅 이펙트를 갖춘 인터랙티브 경험을 실시간으로 만들 수 있습니다. 레이 트레이싱 이펙트는 라이트에 소프트 섀도잉, 정확한 앰비언트 오클루전(AO), 인터랙티브 글로벌 일루미네이션, 리플렉션 등으로 더 자연스러운 분위기를 연출합니다.

에픽게임즈 런처에서 이용할 수 있는 건축 시각화 인테리어 샘플 프로젝트에 레이 트레이싱의 리얼타임 렌더링이 적용되었습니다.

언리얼 엔진의 레이 트레이싱

UE4의 레이 트레이싱은 다음과 같은 두 개의 기술로 구성되어 있습니다.

  • 레이 트레이싱 기능에 기존 래스터 이펙트를 접목한 하이브리드 레이 트레이서(Ray Tracer).

  • 레퍼런스 렌더를 생성하기 위한 패스 트레이서(Path Tracer).

레이 트레이서

레이 트레이서는 프로젝트 내에서 실시간으로 일어나는 모든 섀도, AI, 리플렉션, 반투명, 그리고 글로벌 일루미네이션에 레이 트레이싱 결과를 적용합니다. 패스 트레이서의 비교 기준 결과에 근접한 디노이징 알고리듬과 적은 수의 샘플을 사용합니다.

패스 트레이서

패스 트레이서는 씬에 레퍼런스 이미지를 렌더하기 좋은 비편향, 물리 기반 패스 트레이서입니다. 오프라인 렌더러와 비슷하게 시간을 들여서 샘플을 수집하며, 현 상태에서는 씬의 최종 픽셀 생성이 아니라 비교 기준 렌더러 생성에 유용합니다.

자세한 내용은 패스 트레이서를 참조하세요.

프로젝트에서 레이 트레이싱 활성화

프로젝트에서 레이 트레이싱 지원을 활성화하려면 아래 단계를 따르세요. 

시스템 요건

운영 체제

Windows 10 RS5 (Build 1809) 이상

Windows 검색 바에 winver 를 입력하면 Windows 빌드를 확인할 수 있습니다.

GPU

여기

언리얼 엔진 버전

4.22 이상

언리얼 엔진 렌더링 패스

디퍼드 패스 (아래 Supported Features 참조)

DX12 및 레이 트레이싱 활성화

  1. 메인 메뉴의 파일(File) 메뉴에서 프로젝트 세팅(Project Settings) 을 엽니다.

  2. 플랫폼(Platforms) > Windows디폴트 RHI(Default RHI) 드롭다운에서 DX12 를 선택합니다.

    EnableDX12Mode.png

  3. 엔진(Engine) > 렌더링(Rendering) 에서 레이 트레이싱(Ray Tracing) 을 활성화합니다.

    ProjectSetting_EnableRT

    레이 트레이싱을 활성화하려면 해당 프로젝트에서 스킨캐시 연산 지원(Support Compute Skincache) 이 반드시 활성화된 상태여야 합니다. 비활성화 상태면 지금 활성화하겠냐고 묻는 메시지가 표시됩니다. 메시지가 표시되면 예(Yes) 를 누릅니다.
    SupportSkinCache.png

  4. 레이 트레이싱을 활성화하려면 엔진을 재시작(Restart) 하고 에디터를 DX12로 실행해야 합니다.

실시간 레이 트레이싱 기능

레이 트레이스드 섀도

레이 트레이스드 섀도(Ray Traced Shadows) 는 환경 오브젝트의 소프트 에어리어 라이팅 이펙트를 시뮬레이션합니다. 라이트의 소스 크기 또는 소스 각도에 따라서, 오브젝트 하나의 섀도가 부드럽고 넓게 멀리 퍼지는 게 아니라 접촉 표면 근처에서 선명해진다는 뜻입니다.

섀도맵을 활용한 래스터 섀도

레이 트레이스드 소프트 섀도

레이 트레이스드 리플렉션

레이 트레이스드 리플렉션(Ray Traced Reflections, RTR) 은 멀티 리플렉션 바운스를 지원하는 환경을 정확히 시뮬레이션합니다.

이 예시는 싱글 바운스 레이 트레이스 리플렉션을 멀티 바운스 레이 트레이스 리플렉션과 비교해서 보여줍니다. 멀티 바운스를 사용하면 씬 안의 리플렉션 표면 간 리얼타임 상호 리플렉션이 생성됩니다.

싱글 바운스 레이 트레이스드 리플렉션

멀티 바운스 레이 트레이스드 리플렉션

반면에, 스크린 스페이스 리플렉션 (SSR), 플레이너 리플렉션, 또는 리플렉션 캡처 액터도 전체 씬을 동적으로 캡처할 수 없고, 이러한 다른 리플렉션 유형에 대한 제약 사항도 없습니다.

이 비교에서 SSR은 싱글 바운스 리플렉션만 가능하며, 화면에 보이는 것으로 제한됩니다. 반면에 RTR은 멀티 바운스가 가능하고, 보이는 것으로만 제한되지 않습니다. 책의 측면, 카메라 후방 지면 반사, 창 너머 추가 라이팅이 표면에 반사되는 모습을 볼 수 있다는 뜻입니다.

스크린 스페이스 리플렉션

레이 트레이스 리플렉션

레이 트레이스드 반투명

레이 트레이스드 반투명(Ray Traced Translucency, RTT) 은 반투명 표면에서 물리적으로 올바른 리플렉션, 흡수, 그리고 리프랙션으로 유리와 유체 머티리얼을 정확히 표현합니다.

래스터 반투명

레이 트레이스드 반투명

레이 트레이스드 앰비언트 오클루전

레이 트레이스드 앰비언트 오클루전(Ray Traced Ambient Occlusion, RATO) 은 벽이 만나는 모퉁이에 그늘을 드리우거나 균열이나 피부 주름에 깊이를 더하는 등 앰비언트 라이팅을 막아서 환경 내 오브젝트를 대조함으로써 그림자를 정확하게 드리웁니다.

스크린 스페이스 앰비언트 오클루전 (SSAO)

레이 트레이스드 앰비언트 오클루전 (RTAO)

스크린 스페이스 앰비언트 오클루전(SSAO)과 비교하면, RTAO는 오브젝트를 대조하고 씬에 깊이를 더해서 간접 라이팅 영역의 섀도잉을 자연스럽게 연출합니다.

레이 트레이스드 글로벌 일루미네이션

레이 트레이스드 글로벌 일루미네이션(Ray Traced Global Illumination, RTGI) (은 주어진 라이트 소스가 간접 적용되는 씬 영역에 실시간 인터랙티브 바운스 라이팅을 추가합니다.

씬 라이팅만 적용

레이 트레이스드 글로벌 일루미네이션 | 브루트 포스(Brute Force) 방식

파이널 개더(Final Gather) 방식

현재 실험단계인 RTGI 방식입니다.

일정 수준의 런타임 퍼포먼스를 확보하기 위해 개발된 파이널 개더 기반 기술을 사용하는 대안적인 레이 트레이싱 기반 글로벌 일루미네이션 방식입니다. 이 기술은 2단계 알고리듬으로 이뤄집니다. 1단계에서는 기본 RTGI 방식처럼 셰이딩 포인트를 분배합니다. 단, 픽셀 당 하나의 샘플이라는 고정 비율을 적용합니다. 이 단계에서는 최대 16개의 셰이딩 포인트 샘플이 스크린 스페이스에 저장됩니다. 2단계에서는 알고리듬이 셰이딩 포인트 히스토리에 재연결을 시도하여 해당 방식의 비용을 분할 상환합니다.

원래 RTGI 알고리듬은 [패스 트레이서의][RenderingAndGraphics/RayTracing/PathTracer] 비교 기준 레퍼런스를 에뮬레이팅하려 하며, 패스 트레이싱 실행 결과와 유사합니다. 새로운 방식은 해당 에뮬레이션의 퍼포먼스를 확보하지만, 몇 가지 제한 사항이 있습니다. 현재는 싱글 바운스 간접 디퓨즈 GI에 국한되며, 이전 프레임 GI 샘플 데이터를 리프로젝팅하면 고스팅이 일어날 수 있습니다.

포스트 프로세스 볼륨의 레이 트레이싱 글로벌 일루미네이션(Ray Tracing Global Illumination) 영역에서 유형(Types) 드롭다운 메뉴로 파이널 개더(Final Gather) 방식을 활성화합니다.

일시적인 고스팅 아티팩트가 발생하지 않도록 하려면 다음과 같은 커맨드로 월드 스페이스 리젝션 기준을 수정하면 됩니다.

r.RayTracing.GlobalIllumination.FinalGatherDistance [유닛 수] 

현재는 기본 셰이딩 포인트로부터 월드 거리를 기반으로 합니다. 이 리젝션 기준의 기본값은 10유닛입니다.

또한, 파이널 개더 방식을 효율적으로 활용하려면 포스트 프로세스 볼륨에서 다음과 같은 세팅을 사용해야 합니다.

  • 최대 바운스: 1

  • 픽셀 당 샘플: 16

1을 넘는 최대 바운스값은 알림 없이 버려지며, 픽셀 당 샘플값을 조정할 때는 2의 배수(예: 8, 16, 32, 64)를 사용하는 게 좋습니다.

레이 트레이싱 기능 사용

포스트 프로세스 볼륨

씬에서 포스트 프로세스 볼륨을 사용하면 레이 트레이싱, 패스 트레이싱 기능 및 프로퍼티를 제어할 수 있습니다. 원하는 기능 및 세팅 적용을 위해 볼륨을 실내외 여러 영역에 추가할 수 있습니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

이용 가능한 포스트 프로세스 세팅에 대한 자세한 내용은 레이 트레이싱 세팅을 참조하세요.

라이트

레이 트레이서는 UE4에서 이용 가능한 모든 타입의 라이트를 대상으로 소프트 에어리어 섀도를 지원합니다.

레이 트레이스드 섀도: 디렉셔널 라이트 | 소스 각도: 0.5357

레이 트레이스드 섀도: 디렉셔널 라이트 | 소스 각도: 1.25

다음을 조절하여 섀도의 부드러움을 제어합니다. 

  • 디렉셔널 라이트의 경우, 소스 각도(Source Angle) 를 설정합니다.

  • 포인트 및 스포트 라이트의 경우, 소스 반경(Source Radius) 을 설정합니다. 

  • 렉트 라이트의 경우, 반 도어 각도(Barn Door Angle)반 도어 길이(Barn Door Length) 를 설정하여 라이트 형태와 섀도 부드러움을 조절합니다.

스카이 라이트

스카이 라이트(Sky Light) 의 경우, SLS 캡처드 씬(SLS Captured Scene) 또는 SLS 지정 큐브맵(SLS Specified Cubemap) 과 레이 트레이스 섀도잉을 사용하여 레벨의 먼 부분을 캡처하고, 이를 라이트로 씬에 적용할 수 있습니다. 레이 트레이스드 섀도 드리우기(Cast Raytraced Shadow) 플래그를 체크하면 씬에서 스카이 라이팅을 활성화할 수 있습니다.  

RT_SkyLight

RTGI와 스카이 라이트를 함께 사용하려면 실험단계 콘솔 변수인 `r.RayTracing.GlobalIllumination.EvalSkylight`를 활성화해야 합니다.

레이 트레이싱 앰비언트 오클루전

포스트 프로세스 볼륨으로 씬의 레이 트레이스드 앰비언트 오클루전 을 제어합니다. 앰비언트 오클루전(Ambient Occlusion) 에서 강도(Intensity)반경(Radius) 을 설정하여 이펙트 크기 및 강도를 제어할 수 있습니다. 

레이 트레이스드 앰비언트 오클루전 | 강도: 0.5

레이 트레이스 앰비언트 오클루전 | 강도: 0.85

퍼포먼스 및 디버깅

GPU 통계

콘솔 명령 `GPU Stats`로 레이 트레이싱 GPU 퍼포먼스를 확인할 수 있습니다. 활성화된 레이 트레이싱 기능 관련 정보 및 현재 뷰에서 렌더링하는 데 드는 프레임도 알 수 있습니다. 

GPUStats1

Stat D3D12RayTracing

콘솔 명령 `Stat D3D12RayTracing`으로 관련된 레이 트레이싱 리소스 사용 현황을 확인할 수 있습니다.

StatD3D12RayTracing

레이 트레이싱 디버그 뷰 모드

레벨 뷰포트에서 뷰 모드(View Mode) 드롭다운에서 레이 트레이싱 디버그(Ray Tracing Debug) 를 선택하면 이용 가능한 디버그 뷰 모드를 선택할 수 있습니다. 

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

디노이저 퀄리티 평가

다음과 같은 방법으로 서로 다른 레이 트레이싱 이펙트에 대한 디노이저 퀄리티를 평가할 수 있습니다.  

  • 템포럴 안티 에일리어싱(Temporal Anti-Aliasing)뎁스 오브 필드(Depth of Field) 를 비활성화

    • 언리얼 엔진 렌더러에서는 양쪽 다 선형 컬러 스페이스에서 실행됩니다. 이 둘은 섀도와 하이라이트 사이에서 에일리어싱을 피하도록 HDR 색 가중치 트릭을 수행합니다.

  • 디노이즈드 픽셀 당 싱글 샘플과 언디노이즈 픽셀 당 싱글 샘플을 비교합니다. 

    • 에너지 차이 및 디노이저가 섀도를 너무 어둡게 하여 결과가 부정확해 보일 수 있습니다. 하지만 픽셀 당 싱글 샘플은 톤매퍼의 비선형 연산 때문에 더 밝게 보입니다. 

    • 더 효율적으로 비교하려면, 디노이즈 픽셀 당 싱글(single) 샘플을 언디노이즈 픽셀 당 멀티(multi) 샘플과 비교해서 테스트해야 합니다.

디노이즈드 픽셀 당 싱글 샘플

언디노이즈드 픽셀 당 멀티 샘플

디노이즈드 픽셀 당 싱글 샘플은 정보 손실 때문에 완벽하지 않을 것입니다. 하지만 언디노이즈드 픽셀 당 멀티 샘플과 비교했을 때는 결과가 일정합니다. 

또한, 디노이저는 픽셀 당 최대 4개의 샘플만 지원한다는 사실을 명심해야 합니다. 이를 통해 퀄리티가 향상되고 언디노이즈드 픽셀 당 멀티 샘플의 결과에 더 근접하게 됩니다.

기타 디버깅 노트

  • r.raytracing.ForceAllRayTracingEffects 명령으로 씬에서 레이 트레이싱을 빠르게 활성화 및 비활성화할 수 있습니다. 값이 0이면 모든 이펙트를 비활성화하고, 1이면 모든 이펙트를 활성화하고, -1이면 해당 프로젝트에 활성화된 기존 세팅을 사용합니다.

추가 노트

머티리얼 

  • 머티리얼 비용 테스트(Testing Material Costs)

    • 복잡한 머티리얼은 레이 트레이싱 기능의 퍼포먼스에 영향을 줄 수 있습니다. 콘솔 명령 r.RayTracing.EnableMaterials로 퍼포먼스 영향을 테스트할 수 있습니다.

  • 레이 트레이싱 퀄리티 스위치 대체 노드(Ray Tracing Quality Switch Replace Node)

    • 이 노드를 사용하면 머티리얼 로직 전체를 덜 복잡한 로직으로 대체하여 RTGI, RT 리플렉션, RT 반투명과 같은 기능의 비용을 줄일 수 있습니다. 모든 레이 트레이싱 이펙트에 영향을 주는 전체적인 변경입니다.

    • 이 예시에서는 노멀(Normal) 로직 패스가 씬에 보이는 것과 같이 렌더됩니다. 이 레이 트레이싱(Ray Tracing) 패스는 텍스처, 노멀, 러프니스 비용이 큰 RTGI와 리플렉션 등 레이 트레이싱 이펙트에 덜 복잡한 로직을 적용합니다.

      이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  • 머티리얼별 레이 트레이스드 섀도 캐스트

    • 레이 트레이스드 섀도 드리우기(Cast Ray Traced Shadows) 체크박스로 해당 머티리얼이 레이 트레이스 섀도를 캐스트할지 여부를 설정할 수 있습니다. 지오메트리에 할당된 특정 머티리얼 요소가 레이 트레이스 섀도를 캐스트할지 여부를 제어할 때 유용합니다.

리플렉션

  • 리플렉션 내에서 멀티 바운스 리플렉션 렌더 시, 레이 트레이싱 리플렉션 비용이 클 수 있습니다. 멀티 바운스가 아니면 반사 내 머티리얼이 검게 보입니다. `r.RayTracing.Reflections.ReflectionCaptures`를 활성화하면 레이 트레이스드 리플렉션에서 리플렉션 캡처 액터를 마지막 바운스로 사용할 수 있습니다.

슬라이더를 드래그하면 싱글 바운스 RTR, 리플렉션 캡처 폴백이 없는 투 바운스 RTR, 리플렉션 캡처 폴백이 있는 싱글 바운스를 볼 수 있습니다.

리플렉션에 반투명 오브젝트 포함

렌더링 기능 > 레이 트레이싱 리플렉션의 포스트 프로세스 볼륨(Post Process Volume) 에 있는 반투명 오브젝트 포함(Include Translucent Objects) 세팅을 활성화하면 레이 트레이스드 리플렉션에 반투명 머티리얼을 가진 오브젝트가 표시됩니다.

리프랙션 반투명 인덱스(IOR)

레이 트레이싱에 리프랙션을 세팅해 사용하는 경우, 반투명 머티리얼에 스페큘러(Specular) 머티리얼을 입력해서 리프랙션 인덱스(IOR)를 제어합니다. 언리얼 엔진의 레이 트레이싱 기능은 Disney BRDF 모델을 사용합니다. 이 모델에서는 스페큘러와 IOR값을 함께 처리하여 개별 정의가 불가능합니다.

머티리얼에서 스페큘러값을 정의하고 포스트 프로세스 볼륨에서 리프랙션 프로퍼티를 설정할 때, 반투명 머티리얼의 IOR을 원활히 제어할 수 있습니다.

래스터 반투명 | 가짜 리프랙션 적용

레이 트레이스드 반투명 | 리프랙션 적용

머티리얼 셋업:

  • 머티리얼에서 양면(Two Sided) 을 활성화합니다.

    • 꼭 이렇게 해야 하는 건 아니지만, 한 면/비매니폴드 지오메트리는 볼륨 트래킹 또는 레이 미디엄 스태킹을 다루는 좋은 방법이 없습니다. 레이 트레이싱 반투명을 사용할 때는 정확한 결과를 도출하는 양면 머티리얼로 모든 반투명 머티리얼을 제어하는 게 좋습니다.

  • 라이팅 모드(Lighting Mode)표면 반투명 볼륨(Surface Translucency Volume) 또는 포면 포워드 셰이딩(Surface Forward Shading) 으로 설정합니다.

  • 스페큘러(Specular) 입력으로 리프랙션 인덱스를 제어합니다.

    • 리프랙션(Refraction) 입력은 레이 트레이싱 반투명 머티리얼에 영향을 끼치지 않는다는 사실을 명심하세요.

포스트 프로세스 볼륨 렌더링 기능 셋업:

  • 반투명(Translucency) 카테고리의 유형(Types)레이 트레이싱(Ray Tracing) 으로 설정합니다.

  • 레이 트레이싱 반투명(Ray Tracing Translucency) 카테고리에서 다음과 같이 설정합니다.

    • 리프랙션(Refraction): 활성화

    • 최대 리프랙션 레이(Max Refraction Rays): 사용할 레이의 최대 수를 설정합니다. 빛이 반대편까지 투과할 수 있도록 충분히 큰 값이어야 합니다.

머티리얼 인스턴스로 스페큘러값을 조절하면 IOR을 쉽게 제어할 수 있습니다.

리프랙션 양 제어

리프랙션 양과 라이트 이동은 머티리얼의 스페큘러(Specular) 입력, 포스트 프로세스 볼륨의 최대 리프랙션 레이(Max Refraction Rays)리프랙션(Refraction) 으로 제어할 수 있습니다.

다음과 같은 반투명 머티리얼은 스페큘러값 0.04, 머티리얼 통과 라이트로 최대 6개의 리프랙션 레이를 사용합니다. 아래는 반투명 머티리얼의 리프랙션 활성화 및 비활성화 사례를 비교한 것입니다.

레이 트레이싱 리프랙션: | 비활성화

레이 트레이싱 리프랙션: | 활성화

스페큘러 입력으로 다른 값을 넣으면 반투명 머티리얼의 리프랙션 인덱스에 영향을 줍니다.

슬라이더를 드래그하면 0.01, 0.05, 0.1로 적용된 리프랙션 양을 보여줍니다.

포스트 프로세스 볼륨의 최대 리프랙션 레이 프로퍼티값이 다르면 머티리얼을 통과하는 라이트 이동에도 영향을 미칩니다. 싱글 레이는 머티리얼을 통과할 만큼 충분하지 않으므로, 어둡게 표시됩니다. 레이 수가 늘어나면 굴절된 유리를 통해 오브젝트를 볼 수 있습니다. 하지만 사용된 레이의 수에 따라 일부 영역은 여전히 어둡게 보일 수 있습니다. 레이를 추가로 사용하면 라이트가 볼륨을 통과하도록 할 수 있습니다.

슬라이더를 드래그하면 리프랙션 레이 1, 3, 5개를 사용한 결과를 볼 수 있습니다.

한 면 머티리얼 리프랙션

한 면 머티리얼을 사용한 레이 트레이스 리프랙션도 가능하기는 합니다. 결과는 비슷하지만, 물리적으로 정확한 결과를 도출하는 양면 머티리얼과 똑같지는 않습니다.

레이 트레이스드 반투명 | 한 면 머티리얼 | 리프랙션 적용

레이 트레이스드 반투명 | 양면 머티리얼 | 리프랙션 적용

포스트 프로세스 볼륨 프로퍼티인 최대 리프랙션 레이(Max Refractino Rays) 는 한 면과 양면 머티리얼 모두 라이트가 볼륨을 통과하도록 할 수 있습니다. 하지만 제대로 된 결과를 도출하는 건 양면 머티리얼뿐이므로, 레이 트레이싱 기능을 사용할 때 모든(all) 반투명 머티리얼 제어에 양면 머티리얼을 이용하도록 권장한다는 점을 명심하세요.

서브서피스 프로파일 머티리얼에 대한 라이트 투과

라이트 소스에 투과(Transmission) 프로퍼티가 활성화되어 있으면 서브서피스 프로파일에 라이트가 투과될 수 있습니다.

래스터 서브서피스 프로파일 | 라이트 투과

레이 트레이싱 서브서피스 프로파일 | 라이트 투과

레이 트레이싱 섀도 연산 도중, 소규모 스캐터링 시뮬레이션을 통해 미디엄 통과 후 섀도 캐스팅 라이트까지의 예상 볼류메트릭 스캐터링 거리를 연산합니다. 라이팅 시 스캐터 거리로 인스캐터링 기여도를 연산합니다.

스카이 라이트

스카이 라이트 기여도 연산 시, 스카이돔처럼 멀리 있는 오브젝트는 필요한 경우가 아니면 캡처하지 않도록 비활성화해야 합니다. 이를 통해 퍼포먼스를 확보하고 씬을 최적화할 수 있습니다. UE4에 있는 BP_SkySphere 는 기본적으로 비활성화되어 있으므로 스카이 리플렉션이 기대한 것과 다를 수 있습니다. 디테일(Details) 패널 프로퍼티의 레이 트레이싱 시 표시(Visible in Ray Tracing) 체크박스에서 활성화/비활성화로 오브젝트 기여도를 제어할 수 있습니다.

레이 트레이싱 기능 최적화

  • 리플렉션 및 반투명 최대 러프니스 설정(Setting Reflections and Translucency Maximum Roughness)

    • 최대 러프니스(Max Roughness) 로 머티리얼의 레이 트레이스 리플렉션 한계치를 설정할 수 있습니다. 이는 포스트 프로세스 볼륨 또는 콘솔 명령 r.RayTracing.Reflections.MaxRoughness로 가능합니다.

  • 글로벌 일루미네이션, 리플렉션, 반투명의 최대 레이 거리 설정(Setting a Maximum Ray Distance for Global Illumination, Reflections, and Translucency)

    • 각 기능의 최대 레이 거리를 설정하여 비용을 줄이고 씬에서의 기여도를 낮출 수 있습니다.

    • 콘솔로 각 레이 트레이스 기능의 MaxRayDistance 콘솔 변수를 설정할 수 있습니다. r.RayTracing.* 명령을 입력하면 됩니다.

  • RTGI 최적화

    • 이제 스크린 퍼센티지와 픽셀 당 샘플의 디폴트가 각각 504 입니다. 이 값을 변경해야 하는 경우, 다음과 같은 콘솔 명령을 이용하면 됩니다. r.RayTracing.GlobalIllumination.ScreenPercentager.RayTracing.GlobalIllumination.SamplesPerPixel.

    • GI 라이트 기여도는 라이트의 글로벌 일루미네이션에 적용(Affect Global Illumination) 프로퍼티로 활성화/비활성화할 수 있습니다.

지오메트리를 고려한 레이 트레이싱

  • 식생, 울타리처럼 작은 구멍이나 세세한 디테일이 많은 지오메트리는 퍼포먼스에 큰 영향을 줄 수 있습니다. 

  • 실내 환경은 실외보다 느리게 렌더링됩니다.

    • 예를 들어 라이트가 외부에서 들어오는 경우, 직접 라이트가 적용되는 부위는 간접 적용 부위보다 렌더 속도가 빠릅니다. 

    • 리플렉션, 반투명 같은 레이 트레이싱 기능이 더 사용된다는 사실도 고려해야 합니다.

지원되는 레이 트레이싱 기능

이 목록은 현재 지원하는 기능을 보여드리기 위한 용도로, 언리얼 엔진 4.23(Unreal Engine 4.23) 이 지원하는 모든 레이 트레이싱 기능 목록은 아닙니다.

기능

지원 여부 (Y/N/일부)

추가 정보

렌더링 패스

디퍼드(Deferred)

Y

포워드(Forward)

N

라이트 형

디렉셔널 라이트(Directional Light)

Y

스카이 라이트(Sky Light)

Y

포인트 라이트(Point Light)

Y

스포트 라이트(Spot Light)

Y

렉트 라이트(Rect Light)

Y

라이팅 기능

이미시브 표면(Emissive Surfaces)

일부

표면 리플렉션에서 지원하지만, 라이트를 발산하거나 섀도를 드리우지 않습니다.

라이트 투과(Light Transmission)

N

반투명 섀도는 불투명으로 처리합니다. 색상이 있는 섀도나 머티리얼을 투과하는 라이트가 없다는 뜻입니다.

에어리어 섀도잉(Area Shadowing)

Y

IES 프로파일(IES Profiles)

Y

라이트 함수(Light Functions)

N

볼류메트릭 포그(Volumetric Fog)

N

이미지 기반 라이팅(Image Based Lighting, IBL)

Y

스카이 라이트를 적용한 HDRI를 지원합니다.

머티리얼: 블렌드 모드

불투명(Opaque)

Y

마스크드(Masked)

Y

반투명(Translucent)

Y

애니소트로픽(Anisotropic)

Y

머티리얼: 셰이딩 모델

디폴트 릿(Default Lit)

Y

언릿(Unlit)

일부

마스크드(Masked)

일부

마스크 적용 섀도 캐스팅을 지원합니다.

서브서피스 및 서브서피스 프로파일(SubSurface and SubSurface Profile)

Y

사전통합 스킨(Preintegrated Skin)

일부

작동은 하지만 결과가 제대로 레이 트레이스되지 않습니다. 래스터 파이프라인을 사용합니다.

클리어 코트(Clear Coat)

Y

UE 4.25에서는 클리어 코트 셰이딩 모델이 대폭 향상되었습니다.

양면 폴리지(TwoSided Foliage)

Y

헤어(Hair)

일부

작동은 하지만 결과가 제대로 레이 트레이스되지 않습니다. 래스터 파이프라인을 사용합니다.

클로스(Cloth)

일부

작동은 하지만 결과가 제대로 레이 트레이스되지 않습니다. 래스터 파이프라인을 사용합니다.

머티리얼 함수(Material Functions)

Y

양면(Two-Sided)

Y

월드 포지션 오프셋(World Position Offset)

Y

액터별로 스태틱 메시를 활성화합니다.

지오메트리 타입

스켈레탈 메시(Skeletal Mesh)

Y

스태틱 메시(Static Mesh)

Y

지오메트리 캐시(Geometry Cache) (Alembic)

Y

랜드스케이프(Landscape)

Y

계층구조 인스턴스드 스태틱 메시(Hierarchical Instanced Static Mesh, HISM)

Y

인스턴스드 스태틱 메시(Instanced Static Mesh, ISM)

Y

스플라인(Splines)

N

프로시저럴 메시(Procedural Mesh)

Y

레이 트레이싱 시 이 지오메트리 타입은 렌더 비용이 상당합니다.

BSP 브러시(BSP Brushes)

N

레벨 오브 디테일(Levels of Detail, LOD)

Y

디더드 LOD 트랜지션은 아직 지원하지 않습니다.

비주얼 이펙트(VFX)

나이아가라(Niagara)

일부

현재 스프라이트, 리본 및 메시 이미터를 지원합니다.

캐스케이드(Cascade)

N

플랫폼 지원

멀티 뷰(Multi-View, VR 및 분할 화면)

Y

태그
Select Skin
Light
Dark
언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼