스크린 공간 반사
Screen Space Reflection(SSR) 오버라이드는 리플렉션을 계산하는 데 화면의 컬러 버퍼와 뎁스를 사용하는 고해상도 렌더 파이프라인(HDRP) 기능입니다. HDRP에서 SSR이 작동하는 방식에 대한 자세한 내용은 리플렉션 문서를 참조하십시오.
HDRP는 이 오버라이드 위에 레이트레이싱 기반 반사를 구현합니다. 즉 인스펙터에 표시되는 프로퍼티는 레이트레이싱 활성화 여부에 따라 변경됩니다.
스크린 공간 반사 활성화
씬에서 이 기능을 사용하려면 먼저 해당 기능을 프로젝트에 활성화한 다음 카메라에도 활성화합니다. 프로젝트에서 기능을 활성화하려면 HDRP 에셋을 사용하고 카메라에 대해 기능을 활성화하려면 프레임 설정을 사용합니다. 기본 프레임 설정을 사용하여 모든 카메라에 대해 기능을 활성화할 수도 있고 각 카메라의 개별 프레임 설정을 오버라이드하여 특정 카메라에만 기능을 활성화할 수도 있습니다.
이 기능의 경우 다음과 같습니다. HDRP 에셋에서 활성화되는 프로퍼티는 Lighting > Reflections > Screen Space Reflection입니다. 프레임 설정에서 활성화되는 프로퍼티는 Lighting > Screen Space Reflection입니다.
스크린 공간 반사 사용
HDRP는 볼륨 프레임워크를 사용하여 SSR을 계산합니다. 따라서 SSR 프로퍼티를 활성화하고 수정하려면 씬의 볼륨에 Screen Space Reflection 오버라이드를 추가해야 합니다. 볼륨에 Screen Space Refraction을 추가하려면 다음 단계를 따르십시오.
- 씬 또는 계층 구조 뷰에서 Volume 컴포넌트가 포함된 게임 오브젝트를 선택하여 인스펙터에서 확인합니다.
- 인스펙터에서 Add Override > Lighting으로 이동한 후 Screen Space Reflection을 클릭합니다. 그러면 HDRP가 이 볼륨이 영향을 주는 모든 카메라에 SSR을 계산합니다.
API
런타임 시 이 오버라이드에 액세스하여 제어하려면 볼륨 스크립팅 API를 사용합니다. 볼륨 시스템이 작동하는 방식으로 인해 표준 Unity 컴포넌트에 다른 방식으로 프로퍼티를 편집합니다. 각 프로퍼티에 오버라이드 상태가 있는 것과 마찬가지로 주의해야 할 다른 미묘한 차이가 있습니다. 이는 설정한 프로퍼티 값을 사용해야 하는지 또는 볼륨 프로파일에 저장된 기본값을 사용해야 하는지 볼륨 시스템에 알려줍니다. API를 올바르게 사용하는 방법에 대한 자세한 내용은 볼륨 스크립팅 API를 참조하십시오.
프로퍼티
모든 Volume 컴포넌트 오버라이드에서 프로퍼티를 편집하려면 프로퍼티 왼쪽에 있는 체크박스를 활성화합니다. 이는 또한 HDRP가 기본값이 아닌 Volume 컴포넌트에 대해 지정한 프로퍼티 값을 사용하도록 지시합니다. 체크박스를 비활성화하는 경우 HDRP는 설정한 프로퍼티를 무시하고, 해당 프로퍼티에 대한 볼륨의 기본값을 대신 사용합니다.
인스펙터에 표시되는 프로퍼티는 이 효과에 대한 레이트레이싱 활성화 여부에 따라 다음과 같이 변경됩니다.
- 레이트레이싱을 사용하지 않고 대신 스크린 공간 반사 솔루션을 사용하려면 인스펙터에서 Ray Tracing을 비활성화하고 프로퍼티의 리스트에 대해 스크린 공간을 참조하십시오.
- 레이트레이싱을 사용하려면 인스펙터에서 Ray Tracing을 활성화하고 프로퍼티의 리스트에 대해 레이트레이싱 기반을 참조하십시오.
스크린 공간
프로퍼티 | 설명 |
---|---|
Enable | HDRP가 이 효과의 볼륨에 대한 영향으로 카메라용 SSR을 처리하는지 여부를 나타냅니다. |
Ray Tracing | HDRP가 레이트레이싱을 사용하여 리플렉션을 계산하는지 여부를 나타냅니다. 이 프로퍼티를 활성화하면 이 볼륨 오버라이드에 대한 구현을 완전히 변경하고 레이트레이싱 기반 반사를 제어하는 프로퍼티의 새로운 세트를 노출합니다. 레이트레이싱 기반 반사에 대한 자세한 내용은 레이트레이싱 기반 반사를 참조하십시오. 레이트레이싱 기반 반사를 제어하는 프로퍼티에 대한 자세한 내용은 아래의 레이트레이싱 기반 프로퍼티 섹션을 참조하십시오. |
Algorithm | 스크린 공간 반사 효과에 사용할 알고리즘을 지정합니다. 옵션은 다음과 같습니다. • Approximation: 스크린 공간 반사를 재현하여 결과를 빠르게 계산합니다. 이 솔루션은 특히 거친 표면에 대해선 PBR Accumulation 보다 덜 정밀하지만 리소스가 더 적게 소모됩니다. • PBR Accumulation: 여러 프레임을 누적하여 결과를 더 정확하게 계산합니다. Accumulation Factor를 사용하여 누적 양을 제어할 수 있습니다. 이 솔루션은 누적으로 인해 Approximation 보다 고스팅 현상이 더 많이 발생할 수 있으며 리소스도 더 많이 소모합니다. HDRP는 이 알고리즘을 투명 머티리얼에 적용하지 않고 대신 항상 Approximation을 사용합니다. |
Minimum Smoothness | 슬라이더를 사용하여 HDRP가 SSR 트레이싱을 수행하는 표면 평활도에 대한 최소 양을 설정합니다. 값이 낮을수록 HDRP는 덜 매끄러운 게임 오브젝트에 SSR 트레이싱을 수행합니다. 픽셀의 평활도 값이 이 값보다 낮은 경우 HDRP는 리플렉션 계층 구조에서 다음에 사용할 수 있는 리플렉션 방법으로 폴백합니다. |
Smoothness Fade Start | 슬라이더를 사용하여 SSR 리플렉션이 페이드아웃하기 시작하는 평활도 값을 설정합니다. 값이 낮을수록 HDRP는 덜 매끄러운 게임 오브젝트에 SSR 리플렉션을 페이드아웃합니다. 페이드는 [최소 평활도, 평활도 페이드 시작] 범위에 있습니다. |
Reflect Sky | HDRP가 하늘 반사를 처리하는 데 SSR을 사용해야 하는지 여부를 나타냅니다. 이 프로퍼티를 비활성화하는 경우 하늘을 반사하는 픽셀은 리플렉션 계층 구조의 다음 수준을 사용합니다. 참고: SSR은 뎁스 버퍼를 사용하여 리플렉션을 계산하며 HDRP는 뎁스 버퍼에 투명 게임 오브젝트를 추가하지 않습니다. 이 프로퍼티를 활성화하는 경우 컬러 버퍼에서 하늘 위에 나타나는 투명 게임 오브젝트는 시각적 결함과 올바르지 않게 보이는 리플렉션을 일으킬 수 있습니다. 이는 SSR 기술에 일반적인 제한 사항입니다. |
Screen Edge Fade Distance | 슬라이더를 사용하여 광선의 목표가 화면의 경계 근처일 때 HDRP가 스크린 공간 반사를 페이드아웃하는 거리를 제어합니다. HDRP가 광선 목표에 대해 스크린 공간 반사를 페이드아웃하는 화면 가장자리로부터의 거리를 늘리려면 이 값을 높입니다. |
Object Thickness | 슬라이더를 사용하여 화면에 있는 게임 오브젝트의 두께를 제어합니다. SSR 알고리즘이 얇은 게임 오브젝트와 두꺼운 게임 오브젝트를 구분할 수 없기 때문에 이 프로퍼티는 게임 오브젝트 뒤의 광선을 추적하는 데 도움이 됩니다. 알고리즘은 이 프로퍼티를 모든 게임 오브젝트에 균일하게 적용합니다. |
Quality | 이 효과에 대해 사용하는 품질 수준을 지정합니다. 각 품질 수준은 다른 프리셋 값을 적용합니다. Unity는 또한 프리셋이 오버라이드하는 프로퍼티 편집을 방지합니다. 모든 프로퍼티에 대해 자체 값을 설정하고자 하는 경우 Custom을 선택해야 합니다. |
- Max Ray Steps | 알고리즘이 메시와의 교차점 찾기를 중지하기 전에 실행할 수 있는 반복의 최대 횟수를 설정합니다. 예를 들어 반복 횟수를 1000으로 설정하고 알고리즘은 교차점을 찾는 데 10만 필요한 경우 알고리즘은 10회 반복 후 종료됩니다. 이 값을 너무 낮게 설정하는 경우 알고리즘이 너무 일찍 종료되어 갑자기 리플렉션을 중단할 수 있습니다. |
Accumulation Factor | 누적 수렴 속도입니다. 0은 누적이 없다는 의미입니다. 1은 고정된 이미지에 유용한 누적의 속도가 매우 느리다는 의미입니다. 누적이 더 많을수록 결과는 더 정확하지만 이동 시 고스팅이 더 많이 발생합니다. 누적을 사용할 때 수렴품질과 고스팅 결함 간의 균형을 찾는 것이 중요합니다. 또한 더 거친 반사 표면에는 노이즈 없이 수렴된 이미지를 생성하기에 더 많은 누적이 필요합니다. 이 프로퍼티는 Algorithm을 PBR Accumulation으로 설정한 경우에만 표시됩니다. |
Ray-traced
프로퍼티 | 설명 |
---|---|
Reflect Sky | 이 기능을 활성화하면 광선이 교차점을 찾지 못할 때 HDRP가 레이트레이싱 기반 리플렉션을 위해 폴백으로 하늘을 사용하도록 지정할 수 있습니다. |
LayerMask | HDRP가 이 레이트레이싱 기반 효과를 처리할 레이어를 정의합니다. |
Mode | HDRP가 Performance 모드나 Quality 모드에서 효과를 평가해야 하는지 여부를 정의합니다. 이 프로퍼티는 HDRP 에셋에서 설정된 Supported Ray Tracing Mode를 Both로 선택한 경우에만 표시됩니다. |
Quality | HDRP가 다음의 중첩된 프로퍼티의 값을 채우기 위해 사용하는 프리셋을 지정합니다. 옵션은 다음과 같습니다. • Low: 품질보다 성능을 강조하는 프리셋입니다. • Medium: 성능과 품질이 균형을 이루는 프리셋입니다. • High: 성능보다 품질을 강조하는 프리셋입니다. • Custom: 각 프로퍼티를 개별적으로 오버라이드할 수 있습니다. 이 프로퍼티는 Mode를 Performance로 설정한 경우에만 표시됩니다. |
Minimum Smoothness | 스크린 공간에서 Minimum Smoothness를 확인합니다. |
Smoothness Fade Start | 스크린 공간에서 Smoothness Fade Start를 확인합니다. |
Max Ray Length | 전역 조명 광선의 최대 길이를 제어합니다. 이 값이 높을수록 레이트레이싱 기반 전역 조명이 성능을 많이 소모합니다. 광선이 교차점을 찾지 못하는 경우입니다. |
Clamp Value | HDRP가 미리 노출된 값을 고정하기 위해 사용하는 임계값을 제어합니다. 이렇게 하면 값의 범위가 줄어들고 노이즈를 감소하는 데 리플렉션을 더 안정적이게 하지만 품질은 떨어집니다. |
Upscale Radius | HDRP가 리플렉션을 빌드하는 데 사용하는 업스케일러의 반지름을 제어합니다. 반지름이 클수록 HDRP가 리플렉션을 빌드하는 데 더 많은 이웃을 사용하여 품질이 더 좋습니다. 이 프로퍼티는 Mode를 Performance로 설정한 경우에만 표시됩니다. |
Full Resolution | 이 기능을 활성화하면 광선 메모리 할당량을 프레임마다 픽셀당 하나의 광선으로 늘릴 수 있습니다. 이 기능을 비활성화하면 광선 메모리 할당량을 프레임마다 4픽셀당 하나의 광선으로 줄일 수 있습니다. 이 프로퍼티는 Mode를 Performance로 설정한 경우에만 표시됩니다. |
Sample Count | 프레임마다 픽셀당 광선의 수를 제어합니다. 이 값을 높이면 실행 시간이 선형적으로 늘어납니다. 이 프로퍼티는 Mode를 Quality로 설정한 경우에만 표시됩니다. |
Bounce Count | 리플렉션 광선이 할 수 있는 바운스 수를 제어합니다. 이 값을 높이면 실행 시간이 기하급수적으로 늘어납니다. 이 프로퍼티는 Mode를 Quality로 설정한 경우에만 표시됩니다. |
Denoise | HDRP가 리플렉션에서 노이즈를 제거하기 위해 사용하는 시공간 필터를 활성화합니다. |
- Denoiser Radius | 시공간 필터의 반지름을 제어합니다. 이 값을 높이면 더 흐릿한 결과가 나오며 실행 시간이 더 높아집니다. |
제한 사항
스크린 공간 반사
SSR을 계산하기 위해 HDRP는 이전 프레임 동안 생성된 흐린 밉맵이 있는 컬러 버퍼를 읽습니다. 컬러 버퍼에는 BeforeRefraction 렌더링 패스를 사용하는 투명 게임 오브젝트만 포함되어 있습니다.
투명 머티리얼에 Receive SSR Transparent가 활성화되어 있는 경우 PBR Accumulation을 선택하더라도 HDRP는 항상 SSR을 계산하는 데 Approximation 알고리즘을 사용합니다.
레이트레이싱 기반 리플렉션
현재 HDRP의 레이트레이싱은 데칼을 지원하지 않습니다. 즉 레이트레이싱 기반 리플렉션을 사용하면 데칼은 반사 표면에 나타나지 않습니다.