Unity URP로 전환 시 발생하는 분홍색 Material 문제 해결 방법
Unity 프로젝트를 업그레이드하거나 기존 렌더링 파이프라인에서 URP(Universal Render Pipeline)로 전환하면 일부 Material이 분홍색(Magenta)으로 표시되는 문제가 발생할 수 있습니다. 이는 URP로 전환 과정에서 Material의 Shader가 호환되지 않거나 설정이 변경되어 발생합니다. 이번 포스트에서는 URP란 무엇인지, 설치 방법, 분홍색 Material 문제의 원인과 해결 방법을 단계별로 정리해보겠습니다.
1. URP란 무엇인가?
URP(Universal Render Pipeline)는 Unity의 스크립터블 렌더링 파이프라인(SRP) 중 하나로, 성능과 그래픽 품질 간의 균형을 제공하는 데 초점을 맞춘 렌더링 파이프라인입니다. 모바일, 데스크톱, 콘솔 등 다양한 플랫폼에서 효율적으로 실행되도록 설계되었습니다.
- 뛰어난 성능: 렌더링 효율이 높아 저사양 기기에서도 안정적인 그래픽 출력 가능.
- 더 나은 그래픽 품질: PBR(Physically Based Rendering)을 기반으로 더욱 사실적인 조명과 재질 표현 가능.
- 간편한 커스터마이징: Shader Graph를 활용해 복잡한 Shader를 손쉽게 제작.
- Cross-Platform 지원: 하나의 파이프라인으로 다양한 플랫폼에서 그래픽을 지원.
- Customizable: SRP를 기반으로 하여 사용자 정의 가능.
- 성능 최적화: GPU와 CPU 사용을 효율적으로 관리.
이러한 이유로 많은 개발자가 기존 Built-in Renderer에서 URP로 전환하고 있습니다.
2. URP 설치 방법
- Unity Package Manager 열기:
- Window > Package Manager 메뉴 선택.
- 검색창에서 Universal RP를 검색.
- URP 패키지 설치:
- Universal RP를 선택하고 최신 버전 설치.
- URP 설정 파일 생성:
- Assets > Create > Rendering > Universal Render Pipeline > Pipeline Asset에서 URP 설정 파일 생성.
- 생성된 Asset을 프로젝트에 적용.
- Graphics Settings 변경:
- Edit > Project Settings > Graphics에서 Scriptable Render Pipeline 설정을 생성한 URP Asset으로 변경.
3. URP 전환 시 만나게 되는 문제
렌더링 파이프라인을 URP로 변경하면 기존에 사용되던 Built-in Shader가 URP에서 지원되지 않아 Material이 올바르게 렌더링되지 않습니다. Unity는 Shader가 유효하지 않을 경우 Material을 분홍색으로 표시하여 문제를 시각적으로 알립니다.
- 문제 원인:
- 기존 Built-in Renderer용 Standard Shader가 URP에서 호환되지 않음.
- Custom Shader를 사용 중이라면 자동 변환이 불가능.
- 프로젝트 업그레이드 시 Material 변환 과정에서 오류 발생.
4. 문제의 해결 방안
1. Render Pipeline Converter 사용
Unity 2021 이후 버전에서는 Render Pipeline Converter라는 도구를 제공하여 Material과 Shader를 자동으로 URP 호환 형태로 변환할 수 있습니다.
단계별 사용법
- Converter 열기:
- Window > Rendering > Render Pipeline Converter를 선택.
- Converter 설정:
- Converter 창에서 Built-in to URP를 선택.
- 원하는 항목 체크 (Materials, Shaders, Prefabs 등).
- 변환 실행:
- Initialize Converters 버튼 클릭.
- 변환 결과를 검토한 후 Convert Assets 버튼 클릭.
- 결과 확인:
- 변환 후 분홍색 Material이 사라졌는지 확인.
2. 자동 변환 도구 (2020 버전 이하)
- 자동 변환 도구 실행:
- 상단 메뉴에서 Edit > Render Pipeline > Universal Render Pipeline > Upgrade Project Materials to UniversalRP Materials를 선택합니다.
- 변환 실행:
- Proceed 버튼을 누르면 기존 Built-in Renderer용 Material이 URP용 Material로 변환됩니다.
- 변환 결과 확인:
- 분홍색으로 표시되던 오브젝트가 정상적으로 렌더링되었는지 확인하세요.
참고: 변환 과정에서 Built-in Renderer의 Standard Shader는 URP의 Lit Shader로 자동 교체됩니다.
3. 수동으로 Material 변경
자동 변환으로 문제가 해결되지 않는 경우, 수동으로 Material을 변경해야 합니다.
- 기존 Material 교체:
- 새로 만든 Material을 기존 분홍색 Material 대신 오브젝트에 적용합니다.
4. Custom Shader 문제 해결
Custom Shader를 사용하는 경우, URP 환경에서 자동 변환되지 않습니다. 이를 해결하려면 두 가지 방법 중 하나를 선택하세요:
- URP 호환 Custom Shader로 교체:
- URP에서 사용할 수 있는 커스텀 Shader를 제작하거나 기존 Shader를 수정합니다.
- Shader Graph 활용:
- Shader Graph로 새로운 Shader를 제작하여 문제를 해결합니다.
4. 예외 상황 처리
자동 변환 도구를 사용하거나 Material을 수동으로 변경했음에도 불구하고 일부 오브젝트가 여전히 분홍색으로 표시될 수 있습니다. 이는 다음과 같은 경우일 수 있습니다:
- Custom Shader 사용:
- 자동 변환 도구는 Custom Shader를 처리하지 못합니다.
- 해결 방법: Custom Shader를 직접 수정하거나 URP 전용 Shader로 교체합니다.
- 텍스처 누락:
- Material에 연결된 텍스처 파일이 누락되었거나 경로가 잘못되었을 수 있습니다.
- 해결 방법: 텍스처를 다시 연결하거나 새 텍스처를 설정합니다.
자동 변환이 불가능한 예외 상황
Render Pipeline Converter가 모든 Shader나 Material을 자동으로 변환하지 못할 수 있습니다. 대표적인 사례는 아래와 같습니다.
- Custom Shader: 직접 작성한 Shader가 URP에 최적화되어 있지 않은 경우.
- Third-Party Asset: 일부 에셋 스토어에서 가져온 Shader.
- Non-Standard Shader: Unity의 표준 Shader 외에 다른 렌더링 방식이 적용된 경우.
해결 방법
- URP와 호환되는 Shader를 새로 작성하거나 기존 Shader를 수정.
- Unity에서 제공하는 URP Shader로 대체.
요약 및 결론
URP로 렌더링 파이프라인을 변경하면서 발생하는 분홍색 Material 문제는 Shader 호환성 문제에서 비롯됩니다. Unity의 Render Pipeline Converter를 사용하면 대부분의 문제를 간단히 해결할 수 있으며, 예외적인 경우 수동으로 Shader를 변경하거나 새로 작성해야 합니다.
핵심 정리
- URP 설치 및 설정을 통해 새로운 렌더링 파이프라인으로 전환.
- Render Pipeline Converter로 자동 변환.
- 수동 변경이 필요한 Material은 직접 Shader를 변경.
URP는 더 나은 성능과 그래픽 품질을 제공하므로, 초기 설정과 문제 해결 과정을 거친 후에는 더욱 효율적인 개발 환경을 경험할 수 있습니다.
'Unity > Solution' 카테고리의 다른 글
Unity IAP JNI 에러 해결 사례 (1) | 2024.11.28 |
---|