[Unity] 노드 기반 텍스처 생성 툴 Mixture의 도입과 이미지의 출력을 해 보았다

3409 단어 혼합Unity

Mixture란?



노드 기반으로 좋은 느낌으로 텍스처를 생성할 수 있는 툴.
오픈 소스, MIT 라이센스
ShaderGraph 풍미의 UI, Unity에서 동작한다.

소개



기사가 오래되었을 가능성이 있기 때문에 Github의 Installation 항목을 보는 것이 확실합니다.

실행 환경



Unity2020.3.8f1(글쓰기 시점에서는 Unity 2020.2beta 이상이 필요)

설치



1.Unity 프로젝트 만들기
2.Edit->Project Settings->Package Manager에서 다음을 입력

Name:     Open UPM
URL:      https://package.openupm.com
Scope(s): com.alelievr

3. 같은 위치의 Advanced Settings 항목의 Enable Preview Packages를 체크할 수 있다.


4.Window->PackageManager에서 PackageManager 창을 열고 왼쪽 상단의 드롭다운을 “Packages:My Registries”로 하면 Mixture 항목이 있으므로 설치한다.


사용해보기



Project 탭에서 마우스 오른쪽 버튼을 클릭하여 좋은 느낌으로 StaticMixtureGraph를 만듭니다.


작성한 StaticMixtureGraph를 더블 클릭하면 노드 에디터 윈도우가 열리므로 오른쪽 클릭 등으로 좋은 느낌에 텍스처를 만들고 SaveAll을 누릅니다. 이제 Texture2D로 처리되는 텍스처가 생성되었습니다.


만든 텍스처를 출력한다.



StaticMixtureGraph는 asset 형식으로 저장되며 외부로 가져올 수 없습니다. StaticMixtureGraph는 Texture2D로 취급되므로 이미지를 출력하는 스크립트를 작성해도 좋지만 귀찮아서 쓰지 않는 방법으로 출력합니다.

RealtimeMixtureGraph 만들기


두 번 클릭하여 RealtimeMixtureGraph 편집기 안에 들어가 OutputTextureAsset 노드 이외의 노드를 삭제하고 이전에 만든 StaticMixtureGraph의 노드를 복사하여 창을 닫습니다.

Inspector에서 RealtimeMixtureGraph를 선택하고 오른쪽 상단 메뉴에서 내보내기를 선택하여 exr 형식으로 텍스처를 내보낼 수 있습니다.


여담



· 왜 RealtimeMixtureGraph라면 Export할 수 있을까
StaticMixtureGraph는 Texture2D 취급으로 RealtimeMixtureGraph는 CustomRenderTexture 취급. CustomRenderTexture에는 내보내기 기능이 있기 때문에

·전부 RealtimeMixtureGraph로 만들면 좋지 않아?
RealtimeMixtureGraph는 항상 실행되고 있고 RealtimeMixtureGraph를 대량으로 만들어 보면 GPU가 골고루 사용되어 무거워졌기 때문에 노드 정보를 StaticMixtureGraph로 가지고 있습니다. 나의 요와요와 PC라면 꽤 무거웠지만 츠요츠요 PC 환경이라면 모두 RealtimeMixtureGraph라도 좋을지도 모르겠네요.

결론



Mixture를 사용하고 있으면 에러라든지 경고등이 상당히 나오기 때문에 실제의 프로젝트에 도입하기 어렵습니다만, 텍스처 생성만을 담당하는 프로젝트에 걸치면 좋은 느낌으로 사용할 수 있지 않을까라고 생각했습니다.

자작의 쉐이더 노드라든지 만들 수 있는 것 같아서 여러가지 응용이 좋을 것 같다.

좋은 웹페이지 즐겨찾기