패스트레이싱
패스트레이싱은 카메라에서 광선을 보내고 광선이 반사 표면이나 굴절 표면에 닿으면 광원에 닿을 때까지 프로세스를 재귀적으로 실행하는 레이트레이싱 알고리즘입니다. 카메라에서 광원까지 일련의 광선은 "경로"를 형성합니다.
이를 통해 HDRP는 하나의 통합된 프로세스로 많은 여러 효과(예: 하드 섀도우 또는 소프트 섀도우, 거울 반사 또는 광택 반사 및 굴절, 간접 조명 등)를 계산할 수 있습니다.
패스트레이싱에 대해 가장 눈에 띄는 단점은 노이즈입니다. 하지만 노이즈는 경로가 더 많이 누적될수록 사라지며 결국 깨끗한 이미지로 표현됩니다.
Maximum Samples가 1로 설정된 노이즈가 많은 이미지
Maximum Samples가 256으로 설정된 깨끗한 이미지
고해상도 렌더 파이프라인(HDRP)에서 패스트레이싱에 대한 현재 구현은 카메라가 이동하지 않는 경우 모든 픽셀에 대해 최대 수까지 경로를 누적합니다. 카메라가 이동하는 경우 HDRP는 경로 누적을 다시 시작합니다. 패스트레이싱은 릿 머티리얼과 LayeredLit 머티리얼, 언릿 머티리얼, 면 광원, 방향 광원, 환경 광원을 지원합니다.
패스트레이싱 설정
패스트레이싱은 다른 레이트레이싱 효과처럼 일반적인 요구 사항과 설정을 공유하므로 하드웨어 요구 사항과 설정에 대한 자세한 내용은 레이트레이싱으로 시작하기를 참조하십시오. 패스트레이싱을 씬에 추가하기 전에 반드시 이 설정을 수행해야 합니다.
씬에 패스트레이싱 추가
패스트레이싱은 볼륨 프레임워크를 사용합니다. 따라서 이 기능을 활성화하고 해당 프로퍼티를 수정하려면 씬의 볼륨에 Path Tracing 오버라이드를 추가해야 합니다. 이 작업을 수행하려면 다음 단계를 따르십시오.
- 씬 또는 계층 구조 뷰에서 Volume 컴포넌트가 포함된 게임 오브젝트를 선택하여 인스펙터에서 확인합니다.
- 인스펙터에서 Add Override > Ray Tracing > Path Tracing을 선택합니다.
- Path Tracing 볼륨 오버라이드에 대한 인스펙터에서 Enable 옵션을 선택합니다. Enable 옵션이 보이지 않는 경우 HDRP 프로젝트가 레이트레이싱을 지원하는지 확인합니다. HDRP에서 레이트레이싱을 설정하는 데 대한 자세한 내용은 레이트레이싱으로 시작하기를 참조하십시오. 이렇게 하면 HDRP를 패스트레이싱 기반 렌더링으로 전환하며 처음에는 깨끗한 결과물로 수렴하는 노이즈 낀 이미지가 나와야 합니다.
- 시간이 지나도 이미지가 수렴하지 않는 경우 효과 토글 옆의 드롭다운을 선택하여 Always Refresh를 활성화합니다.
프로퍼티
프로퍼티 | 설명 |
---|---|
Maximum Samples | 최종 이미지에 누적되는 프레임의 수를 설정합니다. 이 값과 관련한 현재 누적을 나타내는 씬 뷰의 하단에 진행 표시줄이 있습니다. |
Minimum Depth | 각 경로에 광원 바운스 최소 개수를 설정합니다. |
Maximum Depth | 각 경로에서 최대 광원 바운스 수를 설정합니다. 이 값은 Minimum Depth보다 낮게 설정할 수 없습니다. 참고: 직접 조명만 원하는 경우 이 값과 Minimum Depth를 1로 설정할 수 있습니다. 간접 조명(두 번째 바운스에서만 표시)만 시각화하고자 하는 경우 둘 모두 2로 설정할 수 있습니다. |
Maximum Intensity | 값을 설정하여 각 바운스가 반환하는 광원 값의 강도를 고정합니다. 이렇게 하면 최종 결과물에서 매우 밝고 격리된 픽셀을 피합니다. 참고: 이 프로퍼티는 최종 이미지를 더 어둡게 하므로 결과물이 어두워 보이는 경우 이 프로퍼티의 값을 높입니다. |
1로 설정된 Minimum Depth, 2로 설정된 Maximum Depth, 직접 조명 및 간접 조명에 적용(1바운스)
1로 설정된 Minimum Depth, 1로 설정된 Maximum Depth, 직접 조명에만 적용된 경우
2로 설정된 Minimum Depth, 2로 설정된 Maximum Depth, 간접 조명에만 적용(1바운스)
제한 사항
이 섹션에는 HDRP의 패스트레이싱 구현 제한 사항에 대한 정보가 포함되어 있습니다. 주로 HDRP가 패스트레이싱 기반 렌더 파이프라인이 아닌 래스터화된 렌더 파이프라인에 지원하는 기능 리스트입니다.
지원되지 않는 패스트레이싱 기능
현재 DX12 외의 플랫폼에서 패스트레이싱에 대한 지원은 하고 있지 않습니다.
Unity 2020.2의 HDRP 패스트레이싱에는 다음의 제한 사항이 있습니다.
- 씬의 메시에
HDRenderPipeline
태그가 없이 할당된 머티리얼이 있는 경우 메시가 씬에 나타나지 않습니다. 자세한 내용은 레이트레이싱 및 메시를 참조하십시오. - 3D Text와 TextMeshPro를 지원하지 않습니다.
- 파생물(예: 텍스처에서 파생된 노멀 맵)을 사용하는 셰이더 그래프 노드를 지원하지 않습니다.
- 데칼을 지원하지 않습니다.
- 테셀레이션을 지원하지 않습니다.
- Tube와 디스크 모양 면 광원을 지원하지 않습니다.
- Translucent Opaque Material을 지원하지 않습니다.
- 일부 HDRP 머티리얼을 지원하지 않습니다. 여기에는 패브릭, 눈, 스택릿, 머리카락, 데칼이 포함됩니다.
- 픽셀당 변위(패럴랙스 오클루전 매핑, 하이트맵, 뎁스 오프셋)를 지원하지 않습니다.
- MSAA를 지원하지 않습니다.
- LOD가 있는 렌더러의 경우 레이트레이싱 가속도 구조체는 최고 수준 LOD만 포함하고 있으며 낮은 LOD는 무시합니다.
- Graphics.DrawMesh를 지원하지 않습니다.
- Streaming Virtual Texturing을 지원하지 않습니다.