3D 프로젝트를 연습하기 위해 유니티 스토어에서 무료 에셋을 구했다.
Import를 하니 예시와는 다르게 머테리얼들이 분홍색으로 떠서
해결 방법을 찾았고 그 과정을 공유하고자 한다.
일단 찾아보니 변하는 이유도,
해결 방법도 다 가지각색이었다.
누구는 그냥 셰이더 들어가서
아무 속성값 숫자 하나 바꾸니까 해결되었다고 하는 사람도 있던데;;
일단 내가 시도했던 방법을 소개한다.
(가장 많이 나오고 대부분 이걸로 해결되는 듯하다.)
(현재 사용하는 환경은 유니티 2022 버전 기준 URP다. / 더 높은 버전도 아마 될 것 같긴 하다.)
Edit - Project Setting - Graphics로 가면 어떤 환경인지 알 수 있다.
None이라면 Builtin이라고.
해결 방법
수동 지정 방식
분홍색 머테리얼들을 수동 지정해 준 후
Edit - Rendering - Materials - Convert Selected Built-in to URP로 바꾸어 주었다.
자동 변환 방식
Window - Rendering - Render Pipeline Converter를 누르면 오른쪽과 같은 창이 뜨고,
전부 체크 해준 후 우측 하단에 Initialize And Convert를 누르면 파일이 올라가고
Convert Asset까지 눌러주면 변환을 해준다.
왜 이런 일이 발생하는가?
유니티는 3가지의 렌더 파이프 환경을 가진다.
Built-in Render Pipeline, URP, HDRP
URP와 HDRP를 묶어서 SRP(Scriptable Render Pipeline)이라고도 한다.
이름처럼 c# 코드를 통해 제어할 수 있어서 그렇게 부르나 보다.
세 환경이 서로 달라서 생기는 문제였다.
렌더 파이프 ?
3D 장면을 2D 이미지(우리가 화면에서 보는 것)로 변환하는 일련의 단계를 말한다.
렌더 파이프라인은 저마다 다른 기능 및 성능 특성을 지니고 있어
다양한 게임환경에 맞춰 대응하기 위해 3가지를 모두 사용하고 있는 듯 하다.
처음 생성 화면을 캡쳐해 왔다.
실행할 때 자세히 보면 어떤 렌더 파이프를 사용하는지 설명이 쓰여 있다.
Universal이라고 쓰여있는 게 URP이고
사진에는 나오지 않았지만 HDRP도 하단에서 찾아볼 수 있었다.
각각에 대해 간단하게 소개하자면
Built-in Render Pipeline
가장 기본 렌더 파이프라인.
URP (Universal Render Pipeline / 또는 lightweight = 이전 이름.)
중간 단계 파이프 라인으로서
가장 범용성이 높은 파이프라인
HDRP (High Definition Render Pipelinee)
고해상도의 그래픽 품질을 위한 파이프라인
정도로 정리가 되는 듯하다.
결론은 에셋들이 특정 파이프라인 환경을 기준으로 제작되었고,
작업 환경과 안 맞아서 발생하는 문제라는 것이었다.
이 이야기를 왜 이렇게 길게 했냐면
분홍색에서 벗어나 텍스처가 잘 보인다고
다 해결된 게 아닐 수 있다는 걸 강조하고 싶어서 그랬다.
https://youtu.be/z2XxQvg2Uhg?si=0gOAgm6wHy4T97jY
찾은 영상 끝부분에서 설명하듯이
Lit, unLit 부분(빛)에서 차이가 나는 게 바로 보인다.
더 세세하게 따지면 분명 성능적인 차이부터 시작해
의도하지 않은 문제가 생길 수 있다.
앞으로는 이런 점까지 고려하여 작업하면 좋을 것 같다는 생각에 적었다.
마무리
일단 나는 처음 설명한 수동 방법으로 해결했다.
자동 방식은 여러 번 시도해 봤으나
컴퓨터 환경 문제인 건지 아니면 에셋들이 많아서 그런 건지
시도 할 때 마다 10분이 넘도록 로딩만 되고
아무런 동작을 안 하는 것 같아서 그냥 수동으로 진행했다.
커스텀 쉐이더의 경우 위 설명한 방식과 다르게
직접 쉐이더를 만져야 한다고 하더라.
다운 받았던 에셋들 중에
커스텀 된 쉐이더가 있어서 알아보다가 나는 일단 넘겼지만
아래 블로그 내용대로 하면 아마 될 것 같긴 하다.
https://jacobjea.tistory.com/6
[Unity] 머테리얼 깨짐 오류 확실한 해결 방법들(머테리얼 분홍색으로 나올 때)
유니티 개발 하다보면 제일 열받는 상황들 . . . 깨짐 현상 발생하는 상황들 1. 프로젝트를 URP프로젝트로 전환했을 때.... 2. Git에 있는 프로젝트를 로컬에 Clone했을 때... 저는 두가지 경우에 항상
jacobjea.tistory.com
※
에셋 제작자들도 이를 알고
여러 렌더 파이프라인에 맞춰서 대응할 수 있도록 올리는 듯하니
해당 프로젝트에 맞는 렌더 파이프라인 에셋을 찾아 적용하면 될 것 같다.
왜 안 되나 찾다가 Readme에 URP 파일 버전은
따로 Import하라고 설명한 걸 글 쓰다가 찾았다.
...
참고하면 좋을 영상
https://youtu.be/5rG3yDZmSbc?si=B6tJyDhChynsbx7d
https://youtu.be/vrmmBuGn77o?si=uA5WDIe_c2ybfX-O
https://youtu.be/wNFjsi6MjAQ?si=b7JWBfLWfHkGfHH4
'유니티 > 3D' 카테고리의 다른 글
유니티 3D - 터레인(Terrian)에 대해 알아보자 (2) | 2024.11.01 |
---|