고해상도 렌더 파이프라인의 리플렉션
고해상도 렌더 파이프라인(HDRP)은 리플렉션을 계산하는 데 다음의 기술을 사용합니다.
Unity 프로젝트에서 사용할 기술을 결정하는 데 도움이 될 수 있도록 다음의 표에 각 기술의 리소스 강도가 나와 있습니다.
기술 | 설명 | 런타임 시 리소스 강도 |
---|---|---|
Screen space reflection | 스크린 공간 솔루션입니다. 실시간으로 모든 게임 오브젝트를 캡처합니다. | 높음 |
Realtime Reflection Probes | 수동으로 배치된 로컬 반사 프로브입니다. 실시간으로 모든 게임 오브젝트를 캡처합니다. | 중간-높음 (캡처의 해상도에 따라 상이) |
Baked Reflection Probes | 수동으로 배치된 로컬 반사 프로브입니다. 베이크 프로세스 동안 정적 게임 오브젝트만 캡처합니다. | 낮음 |
Sky reflection | 반사 머티리얼은 하늘에 대한 반사를 보여줍니다. | 낮음 |
반사 계층 구조
최고 품질의 리플렉션을 생성하기 위해 HDRP는 다른 모든 기술과 블렌딩하는 동안 각 픽셀에 최상의 정확성을 제공하는 반사 기술을 사용합니다. 이렇게 하기 위해 HDRP는 전체 가중치가 1에 도달할 때까지 모든 조명 기술을 평가합니다.
- 스크린 공간 반사는 자체 가중치를 제어합니다.
- 반사 프로브에는 직접 편집할 수 있는 Weight 프로퍼티가 있습니다. 이렇게 하면 겹치는 반사 프로브에 대한 가중치를 설정하여 적절히 블렌딩할 수 있습니다.
- 하늘 반사에는 고정된 가중치가 1입니다.
주어진 픽셀에 최고의 반사 기술을 선택하기 위해 HDRP는 사용할 수 있는 기술을 반사 계층 구조라고 부르는 특정 순서로 확인합니다. 반사 계층 구조의 순서는 다음과 같습니다.
스크린 공간 반사 가중치가 1인 경우 HDRP는 해당 정보를 사용하며 다른 기술을 평가하지 않습니다. 스크린 공간 반사 가중치가 1이 아닐 경우 HDRP는 계층 구조에서 다음 기술로 폴백합니다. HDRP는 이 패턴을 가중치가 1에 도달하거나 하늘 반사를 사용하는 계층 구조에서 가장 낮은 수준에 도달할 때까지 계속합니다. 즉 스크린 공간 반사가 조금이라도 있는 경우 반사 프로브로 폴백하고 없는 경우에는 하늘 반사로 폴백합니다. 반사 프로브는 우선순위가 더 낮은 다른 반사 프로브로 폴백할 수 있습니다. 현재 HDRP는 Influence Volume의 크기를 기반으로 반사 프로브의 우선순위를 계산합니다. Influence Volume이 더 작을수록 우선순위가 더 높습니다.
스크린 공간 반사
반사 계층 구조의 첫 번째 수준은 씬에 렌더링된 모든 것을 캡처하는 리소스 소모량이 많은 스크린 공간 솔루션입니다. HDRP는 볼륨 프레임워크를 사용하여 스크린 공간 반사를 처리합니다. Screen Space Reflection 볼륨 오버라이드에는 프로퍼티가 포함되며 스크린 공간 반사 효과를 제어합니다. 스크린 공간 반사를 계산하기 위해 알고리즘은 뎁스 버퍼와 교차점을 찾을 때까지 스크린 공간에서 광선을 추적합니다. 그런 다음 이전 프레임에서 픽셀의 컬러를 검색하여 반사된 조명을 계산하는 데 사용합니다.
이 스크린 공간 기술은 실제로 화면에 표시되는 게임 오브젝트만 반사할 수 있기 때문에 반사 효과를 제한합니다. 또한 이 기술이 단일 레이어인 뎁스 버퍼만을 사용하므로 게임 오브젝트 뒤의 광선을 추적하는 것은 처리하기 어렵습니다. 이 기술이 교차점을 찾지 못하는 경우 HDRP는 반사 계층 구조에 있는 다음 기술로 폴백합니다.
참고: 스크린 공간 반사는 불투명 머티리얼에만 동작하며 스크린 공간 효과이기 때문에 화면에 표시되는 게임 오브젝트만 반사합니다.
Unity 프로젝트에서 스크린 공간 반사를 사용하는 방법에 대한 자세한 내용은 스크린 공간 반사 문서를 참조하십시오.
반사 프로브
두 번째 수준의 반사 계층 구조는 반사 프로브를 사용합니다. 스크린 공간 반사가 픽셀에 대해 유용한 반사 데이터를 생성하지 못할 때 반사하는 영역이 오프스크린이기 때문에 HDRP는 반사 프로브를 사용합니다. 이러한 반사 프로브가 그 관점에서 씬을 캡처하고 그 결과를 텍스처로 저장합니다. 프로브의 범위에서 반사 머티리얼은 프로브의 텍스처를 쿼리한 다음 이를 사용하여 정확한 반사를 생성할 수 있습니다. 베이크된 반사 프로브를 사용하는 금속성 머티리얼은 스페큘러 조명을 보여주지 않습니다. 대신 HDRP는 앰비언트 컬러를 사용하여 스페큘러 컬러를 재현합니다.
스크린 공간 반사와는 달리 반사 프로브는 수동으로 설정해야 합니다.
반사 프로브에 대한 자세한 내용은 다음을 참조하십시오.
하늘 반사
반사 계층 구조의 최종 수준의 경우 HDRP는 스크린 공간 반사와 반사 프로브가 픽셀에 대해 유용한 반사 정보를 제공하지 않으면 하늘 반사로 폴백합니다. 픽셀이 이 기술을 사용하여 반사를 계산하면 하늘을 쿼리하여 해당 지점에서 하늘에 대한 반사를 생성합니다.
반사 프록시 볼륨 및 재투영
HDRP에서 반사 머티리얼은 반사 프록시 볼륨을 재투영 볼륨으로 사용하여 반사 프로브에서 리플렉션을 적용합니다. HDRP는 캡처한 정보를 사용하여 표면 지점과 동일한 포지션에 있지 않은 캡처 지점으로 인해 발생하는 패럴랙스 문제를 수정하는 데 재투영을 사용합니다.
프록시 볼륨을 사용하지 않는 경우 반사 머티리얼이 반사 프로브가 캡처한 환경 정보를 사용할 때 반사 프로브 캡처 지점과 동일한 지점에서 픽셀에만 완벽한 반사를 제공합니다. 즉 반사 프로브는 화면에 있는 대부분의 반사 머티리얼에 완벽한 반사를 제공하지 않으며 대신 약간 다른 포지션에서 반사된 환경을 렌더링합니다. 반사 프로브의 캡처 지점과 동일한 포지션에 있지 않은 픽셀에 대해 정확한 반사를 원하는 경우 프록시 볼륨을 사용합니다. HDRP는 재투영을 사용하여 이 변위 문제를 수정합니다. HDRP가 반사 프로브의 프록시 볼륨에 캡처 정보를 투영한 다음 이를 반사 머티리얼의 표면에 재투영합니다. 이렇게 하면 완벽한 투영을 제공하지는 않지만 무한 투영이 제공하는 것보다 실제 반사에 훨씬 더 가깝습니다. 하지만 프록시 볼륨이 볼륨의 모양에 따라 잠재적으로 일부 결함을 유발할 수 있습니다.
- Box 볼륨은 잠재적으로 해상도 손실과 상자의 가장자리에 잘못된 각도를 유발할 수 있습니다.
- Sphere 볼륨은 균일한 품질을 제공하지만 가끔씩 프록시 모양이 따르지 않는 긴 표면에 잘못된 반사를 볼 수 있습니다. 예를 들어 긴 평면의 경우 반사 프로브의 캡처 포인트에서 멀어질수록 정확도가 떨어집니다.