커뮤니케이션이 잘못되어 작업하던 파이프라인은 레거시 파이프라인이지만 URP 쉐이더 그래프로 작업물을 받았다.
(명칭이 잘 생각나지 않아 URP 이전 파이프라인은 레거시 파이프라인이라 지칭하겠다)
소통의부재의 잘못은 일단 그렇다 치고 아무튼 이 상황을 해결하기 위해 의논을 했고 상황 정리를 해봤다.
받은 작업물은 게임에서 핵심요소이다. 그리고 우리팀에는 쉐이더 코드를 짤 수 있는 사람이 없다. 따라서 쉐이더 그래프를 보고 코드를 짜는 것은 불가능. 그렇다고 진행하고 있던 프로젝트를 전부 다 URP로 업그레이드 하는건 매우 비효율적이다.
하지만 작업물 자체를 레거시 파이프라인에 맞추는것이 제일 나은 방법이였다.
URP 파이프 라인에서 쉐이더 그래프로 만든 작업물을 레거시 파이프라인으로 적용시킬 방법을 생각해봤다.
그렇게 3가지 방법을 모색했다
해결 방안 ( 최고의 방법순으로 나열함 )
- 쉐이더 그래프를 코드로 변환하는 기능을 찾아서 레거시 파이프라인에 적용시킨다.
- 이전 버전에 쉐이더 그래프 플러그인이 있던게 기억났다. 레거시파이프라인의 쉐이더 플러그인으로 재작업을 한다.
- 기획을 생략해서 그냥 메테리얼을 경우의 수 만큼 준비해서 바꿔치기한다.
1번 방법 : 쉐이더 그래프를 코드로 변환하는 기능
1. 레딧글에 대충 안된다는 내용 근데 2년전 내용
https://www.reddit.com/r/Unity3D/comments/9oq7ij/can_i_convert_shader_graph_shader_into_shader/e7wrdcn/
2. 대충 된다는 글 1년전 내용
https://forum.unity.com/threads/converting-shader-graphs-to-editable-usable-shader-code.709007/
그대로 해봤음
생성 된 코드 표시를 통해 코드를 볼 수 있었다.
코드는 보이는데 포럼의 한 부분이 신경쓰인다..
안될거같긴 한데…
레거시 파이프라인으로 해봤는데 안된다.
이럴수가...
1번 방법은 역시 무리였다.
다음!
2번 방법 : 이전버전에 쉐이더 그래프 적용
에셋스토어에서
키워드 검색 : Graph
에셋 1 :
https://assetstore.unity.com/packages/tools/utilities/graph-development-interface-72081#content
키워드 검색 : shader graph
기존 URP 쉐이더 그래프 확장 플러그인 밖에 없음
이럴수가
…....... 없다
에셋스토어 외의 곳
에셋스토어에서는 시간이 지나면서 예전 에셋들은 정리하는 경향이 있었다.
그래서 예전에 유용하게 쓰던 에셋이 스토어에서 내려갔지만 예전에 다운받아놨던 에셋을 가져와서 사용했던 기억이 있다.
따라서 에셋스토어에서 찾으면 안됨
구글링을 통해 쉐이더 그래프가 나오기 이전인 2013년~2016년을 기간 범위를 잡아 키워드를 유니티 쉐이더 그래프로 검색을 해봤다.
그러다
https://sites.google.com/site/unity3dstudy/home/test2/shader 이곳을 찾았는데
뭔지는 모르겠는데 New Graph라는걸 찾았음
즉 쉐이더그래프 플러그인거같았다.
그리고 Stumpy를 알아보다 대마왕 교수님 블로그에서
https://chulin28ho.tistory.com/210
그래프가 2개 있다는걸 알았다.
스트럼피는 굉장히 별로고
Forge가 PBR도 지원을 한다는 글이다.
그렇다면 Forge를 써야할거같아서 Forge를 찾아봤다.
Forge로 개발이 가능한가?
2018년에 유니티에서 공식으로 쉐이더 그래프를 지원해주면서 Forge가 무료로 오픈소스로 풀렸고
https://xysterxx.tistory.com/168
누가 2018버전에 호환되게 만든 깃허브가 있었다.
https://github.com/jackisgames/ShaderForge
2018버전을 2020 버전 프로젝트로 불러와봤는데
이런식으로 예제로 들어있던 쉐이더는 다 호환을 해서 다 잘 되는 모습을 보여줬지만
그래프를 띄우는건 불가능 했다.
따라서
이전 버전으로 만든 쉐이더 자체는 호환이 가능하나 2020 프로젝트에서는 그래프 에디터를 열 수 없다.
=> 따라서 2018 프로젝트에서쉐이더를작업해서그작업물만 2020 프로젝트로올리면되지않을까? 생각을해봤다.
그래서 2018 가장 최신을 받아봤는데
오류가 뜸
해당 오류를 찾아보니 유니티에서 제공하는 시스템이 바뀌어서 레퍼런스를 못잡는거같다.
아마 같은 2018이였지만 처음에 버전 업그레이드를 하겠냐는 창이 떠서 2018에서 더 세부적인 버전을 찾아야 되는거같다.
그래서 깃허브에 올라온 Forge 2018 프로젝트의 버전을 알아내서 진행했다.
2018.1.02f 였고
해당 프로젝트에서는 열렸다.
그럼 Forge로 만든 쉐이더가 2018에서 현재 버전인 2020에 호환이 되는가?
예제 쉐이더 하나를 간단하게 익스포트 해봤다.
그리고 패키지를 가져와봤는데
2020프로젝트 에서도 잘 임포트 되었다!
그리고 그래픽 개발자님께 Forge로 개발이 가능하냐고 여쭤봤고 가능하다고 하셔서 해당 이슈는 일단락 되었다.
쉐이더를 대충이라도 공부해서 해당 이슈가 무엇때문에 문제였고 해결방안을 찾을 수 있어서 정말 다행이다.