고해상도 렌더 파이프라인의 굴절
고해상도 렌더 파이프라인(HDRP)은 굴절 알고리즘을 사용하여 머티리얼 내에서 빛의 편차와 흡수를 시뮬레이션합니다. 계산 속도를 높이기 위해 HDRP는 빛이 이동하는 경로에 대해 다음의 가정을 사용합니다.
- 빛은 먼저 공기를 통과한 다음 머티리얼을 통과하고 그런 다음 다시 공기를 통과합니다. 즉 알고리즘은 머티리얼이 있는 두 인터페이스(공기에서 머티리얼로, 머티리얼에서 공기로)에서 빛의 편차를 계산합니다.
- 간단한 모양은 오브젝트의 표면을 재현합니다. 이 모양은 굴절 모델에 정의되어 있습니다.
HDRP는 굴절 모델을 사용하여 벗어난 빛의 방향과 머티리얼 내에서 빛이 이동하는 거리를 결정합니다. 그런 다음 HDRP는 프로브 프록시 볼륨에 광선을 캐스트하여(프록시 레이캐스팅) 굴절된 광선의 히트 포인트를 찾습니다.
굴절 사용
머티리얼에 굴절을 설정하려면 다음 단계를 따르십시오.
- 머티리얼을 클릭하여 인스펙터에서 엽니다.
- Surface Type 드롭다운을 클릭하여 Transparent를 선택합니다. 이렇게 하면 인스펙터에 Transparency Inputs 섹션이 노출됩니다.
- Refraction Model 드롭다운을 클릭하여 머티리얼에 대한 Refraction Model을 선택합니다.
- 머티리얼을 굴절되게 하려면 Base Map에 대한 알파 값이 1보다 작아야 합니다. 값이 0이면 머티리얼이 완전히 굴절됩니다.
굴절을 제어하는 프로퍼티에 대한 자세한 내용은 표면 타입을 참조하십시오.
직관적으로 굴절하는 오브젝트에 대해 표면이 덜 매끄러울수록 굴절이 더 흐려집니다.
스크린 공간 굴절을 효과적으로 사용하고자 하는 경우 프로브 프록시 볼륨도 설정해야 합니다. 스크린 공간 굴절이 프로브 프록시 볼륨을 사용하여 씬을 재현하고 굴절된 올바른 컬러를 찾기 때문입니다. 최상의 결과를 얻으려면 프록시 볼륨은 굴절된 광선이 내려오려는 가능한 한 많은 씬을 재현해야 합니다. 프록시 볼륨에 대한 자세한 내용은 반사 프록시 볼륨 페이지를 참조하십시오.
굴절 계산
HDRP는 이러한 기술을 사용하여 빛의 굴절을 계산합니다.
Unity 프로젝트에서 사용할 기술을 결정하는 데 도움이 될 수 있도록 다음의 표에 각 기술의 리소스 강도가 나와 있습니다.
기술 | 설명 | 런타임 시 리소스 강도 |
---|---|---|
Screen space refractions | 실시간으로 모든 게임 오브젝트를 캡처하는 스크린 공간 솔루션입니다. | 낮음 |
Baked Reflection Probes | 베이크 프로세스 동안 정적 게임 오브젝트만 캡처하는 수동으로 배치된 로컬 반사 프로브입니다. | 낮음 |
Realtime Reflection Probes | 실시간으로 모든 게임 오브젝트를 캡처하는 수동으로 배치된 로컬 반사 프로브입니다. | 중간-높음 (게임 오브젝트 캡처의 해상도에 따라 상이) |
굴절 계층 구조
최고 품질의 굴절을 생성하기 위해 HDRP는 어느 굴절 기술이 각 픽셀에 대해 최상의 정확도를 제공하는지 선택하고 이를 다른 모든 기술과 블렌딩하는 동안 굴절 계산에 사용합니다.
이렇게 하기 위해 HDRP는 사용할 수 있는 기술을 굴절 계층 구조라고 부르는 특정 순서로 확인합니다. 굴절 계층 구조의 순서는 다음과 같습니다.
즉 스크린 공간 굴절이 픽셀에 대한 정보를 반환하지 않는 경우 HDRP는 해당 픽셀에 대한 반사 프로브를 사용합니다.
스크린 공간 굴절
굴절 계층 구조의 첫 번째 티어는 스크린 공간 솔루션입니다. 스크린 공간 굴절을 계산하기 위해 알고리즘은 굴절 오브젝트에서 시작하는 광선을 추적합니다. 그런 다음 머티리얼의 프로퍼티에 따라 광선을 굴절시킵니다. 굴절된 광선을 계산하기 위해 알고리즘은 굴절 오브젝트가 단순한 모양(굴절 모델)으로 재현될 수 있다고 가정합니다.
그런 다음 굴절된 광선은 가장 가까운 프로브 프록시 볼륨과 교차하여 굴절된 광선의 결과를 가장 잘 재현하는 스크린 공간의 픽셀을 찾습니다. 사용할 수 있는 반사 프로브 프록시가 없는 경우 HDRP는 투사로 무한히 폴백합니다.
반사 프로브
두 번째 수준의 굴절 계층 구조는 반사 프로브를 사용합니다. 스크린 공간 굴절이 픽셀에 대해 유용한 굴절 데이터를 생성하지 못할 때 반사하는 영역이 오프스크린이기 때문에 HDRP는 반사 프로브를 사용합니다. 반사 프로브가 그 관점에서 씬을 캡처하고 그 결과를 텍스처로 저장합니다. 프로브의 범위에서 굴절 머티리얼은 해당 프로브의 텍스처를 쿼리한 다음 이를 사용하여 정확한 굴절을 시뮬레이션할 수 있습니다.
스크린 공간 굴절과 달리 반사 프로브는 수동으로 설정해야 합니다.
반사 프로브에 대한 자세한 내용은 다음을 참조하십시오.
굴절 모델
HDRP는 간단한 모양을 사용하여 게임 오브젝트의 표면을 재현합니다.
- Sphere: 표면을 구체로 재현합니다.
- Box: 표면을 비어 있는 상자로 재현합니다. 이 경우 두께는 상자의 두 평행한 면 사이의 거리로 생각합니다.
- Thin: 표면을 5cm로 두께가 고정된 비어 있는 상자로 재현합니다.
예제
견고한 게임 오브젝트의 경우 머티리얼이 사용되는 게임 오브젝트의 크기에 가까운 두께를 가진 구체 굴절 모델을 사용합니다. 두께를 설정하려면 Refraction Thickness를 사용합니다.
비어 있는 굴절 게임 오브젝트(예: 거품)의 경우 Thin 굴절 모델을 사용하거나 작은 두께 값이 있는 Box 굴절 모델을 사용합니다. 두께를 설정하려면 Refraction Thickness를 사용합니다.