6.x에서 7.x로 HDRP 업그레이드
고해상도 렌더 파이프라인(HDRP)에서 몇몇 기능은 주요 버전에서 다르게 작동합니다. 이 문서는 6.x에서 7.x로 HDRP를 업그레이드하는 데 도움이 됩니다.
새로운 씬
HDRP의 새로운 씬 시스템은 프로젝트의 프리팹에 의존합니다. 또한 볼륨을 위해 정해진 기본 설정에 따라 다릅니다. 이미 마법사로 설정한 경우 Default Volume Profile Asset(Edit > Project Settings > HDRP Default Settings에 있음)에 관련하여 업데이트해야 합니다.
기본 프리팹(마법사로 생성)을 사용하고 기본 Default Volume Profile Asset에 의존하는 경우 프리팹은 더는 기본 볼륨 프로파일과 동기화되지 않으며 반드시 업데이트해야 합니다.
마법사를 사용하여 다음과 같이 새로 하나를 다시 만드는 편이 가장 쉽습니다.
- 마법사를 엽니다(Window > Render Pipeline > HD Render Pipeline Wizard).
- Default Scene Prefab에 설정되어 있는 프리팹을 제거합니다.
- [선택 사항] 버전이 없어지지 않도록 커스터마이즈한 경우 이전 프리팹 사본을 보관해야 합니다. 사본을 보관하려면 프리팹 이름을 바꿉니다. 이렇게 하면 오버라이드를 방지합니다.
- Default Scene Prefab 열에 대해 아래의 Configuration Checking을 확인하고 Fix 버튼을 클릭합니다.
- [선택 사항] 새로 생성된 프리팹에 커스텀 변경 사항을 보고합니다.
그런 다음 DXR도 사용한 경우 Default DXR Scene Prefab에도 이 작업을 반복합니다.
HDRP의 새로운 씬 시스템은 프로젝트의 프리팹에 의존합니다. 이미 마법사로 하나를 설정한 경우 업데이트해야 합니다.
절차적 하늘
절차적 하늘 오버라이드는 7.x에서 사용 중단 예정입니다. 프로젝트가 절차적 하늘을 사용하는 경우 샘플에서 오버라이드를 설치하거나 새로운 물리 기반 하늘로 변경해야 합니다.
절차적 하늘 오버라이드를 7.x 프로젝트에 설치하려면 다음 단계를 따르십시오.
- Unity 에디터에서 프로젝트를 엽니다.
- 패키지 관리자를 열고(Window > Package Manager) High Definition RP를 클릭합니다.
- Samples 섹션에서 Procedural Sky 엔트리의 Import in project 버튼을 클릭합니다. 절차적 하늘을 사용하는 씬이 열려있는 경우 하늘은 다시 나타나지만 해당 설정은 기본 값으로 초기화되어 있습니다.
- 하늘 설정을 복구하려면 저장하지 않고 Unity를 끈 다음 프로젝트를 다시 엽니다.
마지막 단계는 중요합니다. 샘플을 설치하지 않고 절차적 하늘을 사용하는 씬을 로드하면 볼륨에 있는 절차적 하늘 데이터가 손실되기 때문입니다. Unity는 이를 직렬화하지 않으므로 Unity를 닫고 다시 열어서 설정을 복구해야 합니다.
하늘 강도 모드
7.x의 HDRP에서 하늘 강도가 처리되는 방법이 변경되었습니다. 변경 전에는 Exposer과 Multiplier라는 두 개의 파라미터가 있었습니다. 하늘 강도를 변경하는 데 이 두 파라미터를 적용했었습니다. 현재는 사용자가 둘 중에서 선택하는 새로운 콤보 상자가 있습니다. 업데이트 스크립트는 기존의 하늘 컴포넌트를 업그레이드하기 위해 Edit > Render Pipeline > Upgrade Sky Intensity Mode에 제공되어 있습니다.
안개
HDRP는 7.x에서 리니어 안개, 지수형 안개, 볼류메트릭 안개, 볼류메트릭 안개 품질 오버라이드를 지원 중단 예정이며 단일 안개 오버라이드로 교체하였습니다. 이 오버라이드는 기본적으로 높이 컴포넌트와 함께 지수형 안개로 역할하며 볼류메트릭 안개를 추가할 수 있습니다. 이전 안개 오버라이드를 새로운 시스템으로 자동으로 업데이트하려면 Edit > Render Pipeline > Upgrade Fog Volume Components를 선택합니다. 모든 경우가 안전하게 변경되지는 않기 때문에 일부는 수동으로 업그레이드를 해야할 수 있습니다.
섀도우 맵
7.x 이전에는 HDRP의 각 광원이 섀도우 맵 바이어스에 몇 가지 옵션을 노출했었습니다. 7.x부터 HDRP는 Normal Bias를 제외한 모든 옵션을 Slope-Scale Depth Bias로 교체했습니다. 이 프로퍼티를 적용하면 섀도우 맵 바이어스 설정이 이전과는 굉장히 달라집니다. 즉 기본값이 예상 밖의 결과로 이어질 경우 각 광원에서 바이어스에 대해 새롭게 설정을 해야 할 수도 있습니다.
또한 7.x 이전에 PCSS에는 다른 파라미터화를 채택했었습니다. 7.x부터는 그림자 부드러움이 방향 광원의 각지름과 점 광원과 스폿 광원의 모양 반지름으로 제어됩니다. 이전 그림자 부드러움을 모양 반지름으로 바꾸려면 대략적인 함수는 다음과 같습니다: 0.333 * oldSoftness * (shadowResolution / 512)
.
뿐만 아니라 Minimum filter size 옵션은 현재 Minimum Blur Intensity라고 하며 이는 기능적으로는 같지만 이전 범위인 [0 ... 0.0001] 부터 [0 ... 1] 까지를 다시 매핑합니다.
광원
7.x부터 사용 가능한 광원 타입은 방향 광원, 점 광원, 스폿 광원, 면 광원이며 빌트인 렌더러의 타입과 일치합니다. 면을 광원 타입으로 선택한 후 면 광원의 모양(예: 사각형, 튜브형, 원반형)을 선택할 수 있습니다.
면 광원
7.x 이전에 HDRP는 면 광원의 Emissive Mesh에 대한 너비와 높이를 해당 트랜스폼의 localScale과 동기화했습니다. 7.x부터 HDRP는 lossyScale을 사용하여 부모 트랜스폼의 스케일을 위한 Emissive Mesh 계정을 만듭니다. 즉 Unity 프로젝트에서 모든 면 광원을 해당 부모의 스케일에 따라 크기를 조절해야만 합니다.
쿠키 텍스처(스폿 광원, 면 광원, 방향 광원) 및 평면 반사 프로브
7.x 이전에 스폿 광원과 면 광원, 방향 광원 및 평면 반사 프로브의 쿠키를 텍스처 배열로 저장했었습니다. 이러한 배열의 사용으로 인해 한 배열에서 모든 요소에 동일한 크기를 사용하는 데 제한이 있었습니다. 쿠키 텍스처의 경우 전환 코드는 텍스처 크기가 텍스처 배열(HDRP 에셋에 정의된 배열)의 크기와 정확히 같지 않은 경우 배열의 크기에 맞도록 조절되게 했습니다.
현재는 아틀라스를 사용하고 있으므로 이 제한 사항이 더 이상 없습니다. 즉 텍스처의 실제 크기를 사용하고 있으므로 사용하던 쿠키 크기는 다를 수 있으며 텍스처가 너무 크거나 너무 작은 경우 쿠키가 더욱 선명하고/픽셀화될 수 있습니다. 이런 종류의 문제가 발생하는 경우 이미지를 바로 수정하는 것이 좋습니다.
이는 또한 평면 반사 프로브의 경우 프로브마다 다른 해상도를 사용할 수 있다는 의미입니다.
또한 콘솔에서 다음의 문제가 발생할 수 있습니다. No more space in the 2D Cookie Texture Atlas. To solve this issue, increase the resolution of the cookie atlas in the HDRP settings.
이는 뷰에 쿠키 아틀라스가 너무 많거나 쿠키 텍스처가 너무 커서 쿠키 아틀라스에 남은 공간이 없다는 의미입니다. 이 문제를 해결하려면 쿠키 텍스처의 해상도를 낮추거나 HDRP 설정에서 아틀라스 해상도를 높여야 합니다.
최대 평활도, 이미션 반지름, 베이크 그림자 반지름, 베이크 그림자 각도
7.x 이전에 최대 평활도, 이미션 반지름, 베이크 그림자 반지름은 점 광원과 스폿 광원에 대한 별도의 컨트롤이었습니다. 7.x부터 UI는 앞서 언급한 모든 프로퍼티를 제어하는 Radius라는 단일 프로퍼티를 표시합니다. 또한 최대 평활도, 각지름, 베이크 그림자 각도는 방향 광원에 대한 별도의 컨트롤이었습니다. 현재 UI는 앞서 언급한 모든 사항을 제어하는 Angular Diameter라는 단일 프로퍼티를 표시합니다.
업그레이드할 때 하이라이트 모양이나 그림자 반영 크기가 약간 변할 수 있습니다. 이는 원래의 프로퍼티를 "Radius\” 또는 "Angular Diameter"에서 자동 전환한 결과와 일치하지 않는 값에 설정한 경우 발생합니다.
실시간 GI 인라이튼
7.x부터 HDRP는 더 이상 새로운 프로젝트에 대해 실시간 GI를 지원하지 않습니다. 하지만 HDRP는 이전에 7.x LTS 전용으로 만든 프로젝트에 대해서는 여전히 실시간 GI를 지원합니다.
커스텀 셰이더
7.x는 Unity가 프로브의 콘텐츠를 렌더링할 때 사용하는 범위를 압축할 수 있는 반사 프로브에 변화를 줍니다. 여기에는 사소한 변화부터 셰이더 프레임워크까지 포함되며 함수 SampleEnv()
에는 현재 추가 파라미터가 필요하며 이는 프로브를 렌더링할 때 수행된 범위 압축을 보정하기 위해 프로브 데이터에 적용하는 요소입니다. 이 값은 rangeCompressionFactorCompensation
의 이름으로 데이터 구조 EnvLightData
에 있습니다.
HDRP 에셋 및 기본 설정
7.x부터 HDRP의 많은 설정이 이동했습니다. 특히 기존에 HDRP 에셋에 있었던 대부분의 정보가 현재 프로젝트 설정에 똑같이 들어있습니다. 다음과 같이 별도의 카테고리 두 개가 있습니다.
- Default Settings (Project Settings > HDRP Default Settings), 여기서 기본 Frame Andy Volume Settings를 제공할 수 있습니다.
- Quality Settings (Project Settings > Quality > HDRP), 여기서 여러 렌더 파이프라인 에셋에 대한 설정을 관리할 수 있습니다.
7.x부터 Baking sky / Static lighting Sky 컴포넌트는 지원 중단 예정입니다. 현재 설정은 (Lighting Window > Environment lighting)에 있으며 볼륨 프로파일 에셋과 드롭다운을 사용하여 베이크에 사용할 하늘을 선택합니다. 씬에서 Static Lighting Sky 컴포넌트를 제거할 수 있습니다.
볼륨 설정 단축키
7.x부터 미리 정해진 볼륨 설정을 만들기 위한 컨텍스트 메뉴의 렌더 설정 단축키는 없습니다. HDRP는 대신 Default Settings (Project Settings > HDRP Default Settings)을 사용합니다. HDRP에는 현재 볼륨을 설정하는 프로세스를 용이하게 하기 위해 다른 모양의 로컬 볼륨에 대한 단축키가 포함되어 있습니다. 또한 HDRP에는 볼륨 타입에 흔히 사용되기 때문에 Sky 오버라이드와 Fog 오버라이드가 있는 볼륨을 만드는 단축키가 포함되어 있습니다.
HDRP 설정 패키지
7.x부터 HDRP에는 종속성으로 인해 추가적인 작은 패키지가 있습니다. 바로 HDRP-Config 패키지입니다. 이 패키지에 있는 프로퍼티를 변경하여 HDRP의 UI에서 동적으로 제어할 수 없는 기능을 비활성화하거나 미세하게 조정할 수 있습니다. 현재 여기에는 다음 사항이 포함됩니다.
- 디퍼드 모드에서 그림자 필터링 품질 선택
- 카메라 관련 렌더링
- 레이트레이싱
- XR 최대 뷰
- 면 광원
머티리얼 업그레이더
High Definition RP 패키지를 업그레이드하면 현재 Unity는 각 머티리얼을 업그레이드합니다. 즉 HDRP 셰이더가 변경되면 처음에 버전 숫자를 추가하므로 Unity는 머티리얼이 새로운 변경사항에도 계속 올바르게 작동하도록 머티리얼을 수정할 수 있습니다.
이렇게 하기 위해 Unity는 업그레이드를 시작할 때 프롬프트를 열어서 프로젝트를 저장할 것인지 여부를 묻습니다. Unity는 프로젝트를 저장하는 데 동의할 때까지 이전 파일 업그레이드를 계속해서 시도합니다.
게임 오브젝트 SceneIDMap에 대해 누락된 스크립트
7.x 이전에 저작한 베이크된 프로브가 있는 씬에서 플레이 모드에 진입하면 SceneIDMap이라고 하는 게임 오브젝트의 누락된 스크립트에 대한 경고가 나타날 수 있습니다. 이 문제를 수정하려면 Unity 에디터에서 씬을 로드하여 Edit > Render Pipeline > Fix Warning 'referenced script in (Game Object 'SceneIDMap') is missing’ in loaded scenes를 선택합니다.
광원 강도 및 하늘 노출 대 HDRP 기본 설정
기본적으로 HDRP는 광원에 대해 물리적으로 올바른 강도를 사용합니다. 이로 인해 HDRP에 있는 기본 HDRI 하늘 노출은 10000 강도의 방향 광원에 맞추기 위해 11로 설정되어 있습니다. 참고로 비슷한 값을 템플릿 프로젝트에서 찾을 수 있습니다. HDRP 마법사가 올바르게 설정되어 있을 때 새로운 씬을 만드는 경우 Unity는 모든 사항이 일치하도록 올바른 강도로 게임 오브젝트를 자동으로 생성합니다. 하지만 HDRP 마법사가 올바르게 설정되어 있지 않은 경우 또는 방향 광원을 처음부터 생성하는 경우 강도는 물리적으로 올바르지 않습니다. 그 결과 광원이 기본 하늘 노출과 일치하지 않으므로 씬의 모든 게임 오브젝트가 과하게 밝은 하늘에 대해 자동 노출 보정으로 인해 검게 보입니다. 이러한 문제를 방지하려면 현재 하늘 노출과 비교하여 광원 강도에 일관된 값을 사용해야 합니다.
이리데선스 색 공간
이전에 HDRP는 잘못된 색 공간을 사용하여 이리데선스를 계산했습니다. 7.x부터 HDRP는 올바른 색 공간을 사용합니다. 이 결과로 이리데선스 효과를 사용할 때 더 선명하며/강렬한 컬러가 나타납니다.