WinCNT

기존 프로젝트를 URP로 변경하기 본문

Unity/URP or Shader 관련

기존 프로젝트를 URP로 변경하기

WinCNT_SSS 2023. 5. 30. 11:27

서론

이전에 빌트인으로 만들었던 프로젝트를 URP로 변경해보려고 한다

매우 간단한 프로젝트이라서 다른 변수가 영향을 주지 않으리라 생각한다

(참고로 설치하는 URP의 버전은 12.1)

방법은 Unity의 공식 문서를 참고하였다


URP 설치

우선 패키지 매니저에서 Universal RP를 설치해야 한다

URP로 검색해도 나오게 해주세요


URP 에셋 만들기

URP를 사용하기 위해서는 URP 에셋를 만들고, Graphics 설정에서 그 에셋을 할당해야 한다고 한다

Universal Render Pipeline Asset | Universal RP | 12.1.11

 

Universal Render Pipeline Asset | Universal RP | 12.1.11

Universal Render Pipeline Asset To use the Universal Render Pipeline (URP), you have to create a URP Asset and assign the asset in the Graphics settings. The URP Asset controls several graphical features and quality settings for the Universal Render Pipeli

docs.unity3d.com

 

URP Asset은 Create > Rendering > URP Asset으로 만들 수 있다

그러면 다음과 같이 2개의 에셋이 만들어진다(_Renderer가 붙은 에셋도 자동 생성됨)


URP Asset을 설정하기

옵션 설정은 나중에 하기로 하고, 우선 방금 만든 URP Asset을 설정해보자

위치가 어딨는지 모르겠으면 검색 필드에 t:universalrenderpipelineasset라고 치면 모든 URP Asset이 나온다고 한다

설정은 간단하다

Project Settings > GraphicsScriptable Render Pipeline Settings에 URP Asset를 설정하면 된다

Quality에도 똑같이 설정해준다(이 부분은 안 해도 된다고 한다)

 

그러면 빌트인 프로젝트에서 만들었던 큐브(기본 도형)이 이렇게 변한다


셰이더 변경

URP로 바꾸면 기존의 빌트인 셰이더는 사용할 수 없게 된다

표준 셰이더는 다음의 공식 문서을 참고해서 적절하게 매핑하고, 커스텀 셰이더는 URP와 호환되도록 수정해야 한다

Converting your shaders | Universal RP | 12.1.11

 

Converting your shaders | Universal RP | 12.1.11

Converting your shaders Shaders written for the Built-in Render Pipeline are not compatible with the URP shaders. For an overview of the mapping between built-in shaders and URP shaders, see Shader mappings. Use the Render Pipeline Converter to apply the s

docs.unity3d.com


결과

기본 도형을 만들었을 때 자동으로 만들어지는 머테리얼 바뀐 것을 보니 잘 된 것 같다


번외) 카메라 컴포넌트의 Renderer

URP의 카메라 설정에는 Renderer라는 항목이 있다

(정확히는 UniversalAdditionaCameraData 컴포넌트의 m_RendererIndex)

 

이 Renderer가 원하는 URP Asset(의 Universal Renderer Data, 자동 생성되는 그 녀석)로 제대로 설정되어 있는지 확인해야 한다

필자는 프로젝트를 처음부터 URP로 만들었을 , 디폴트인 URP-HighFidelity-Renderer가 설정되어서 나중에 커스텀 URP Asset의 렌더러 데이터를 설정하려고 해도 어떻게 바꿔야 하는지 모를 사태가 발생한 적이 있었다

다행히 URP-HighFidelity-Renderer를 일시적으로 지우니 제대로 설정되긴 했다

시도를 해보진 않았지만 컴포넌트의 리셋 등으로 바뀌었을 가능성도 없진 않을 것 같다


참고 사이트

Installing the Universal Render Pipeline into an existing Project | Universal RP | 12.1.11

 

Installing the Universal Render Pipeline into an existing Project | Universal RP | 12.1.11

Installing the Universal Render Pipeline into an existing Project You can download and install the latest version of the Universal Render Pipeline (URP) to your existing Project via the Package Manager system, and then install it into your Project. If you

docs.unity3d.com

Converting your shaders | Universal RP | 12.1.11

 

Converting your shaders | Universal RP | 12.1.11

Converting your shaders Shaders written for the Built-in Render Pipeline are not compatible with the URP shaders. For an overview of the mapping between built-in shaders and URP shaders, see Shader mappings. Use the Render Pipeline Converter to apply the s

docs.unity3d.com