우선 Shader Graph가 무엇일까? Shader는 컴퓨터 그래픽에서 물체를 최종적으로 화면에 그릴 때 사용하는 함수이다. 라고 많이들 하는데 잘 감이 안온다면 구글에 "마인크래프트 셰이더" 라고 검색해 보고 이미지들을 봐보자. 아마 셰이더를 적용하기 전에 보았던 마인크래프트보다 훨씬 예쁜 장면들이 나올 것이다.
내가 알던 마인크래프트는 네모네모난 세상이였는데 이런 사진들을 보면 전혀 다른 세상이 나온다. 셰이더가 뭐길레 이렇게 보이는 것일까? 컴퓨터에서 마인크래프트 세상을 우리 화면에 보이게 하기 위해서는 여러 과정들을 거친다. 그 과정들은 아래 링크에서 자세하게 설명해 준다. 마인크래프트에 셰이더를 적용하면 화면에 마인크래프트 세상을 보여주기 전에 한번 더 작업을 거쳐 아름다운 모습으로 보여준다.
https://mingyu0403.tistory.com/110
이러한 셰이더를 유니티에서도 사용하여 일반적으로 구현하기 힘들 것들을 구현할 수 있게 해준다. 대표적인 셰이더는 물 셰이더 이다. 물 셰이더에 대한 예시들이 보고 싶다면 유니티 에셋스토어에서 Water 이라고 검색하면 많이 나온다.
https://assetstore.unity.com/?q=water&orderBy=1
이러한 셰이더를 사용하려면 스크립트를 작성해야 하나 유니티 Shader Graph를 이용하면 노드 형식으로 작성할 수 있다. 아래는 내가 작성한 물 셰이더 그래프이다. 이런 식으로 여러 노드들을 연결해서 내가 원하는 셰이더를 만들 수 있다.
이 블로그에서는 셰이더 그래프에 대한 자세한 설명은 안하고 몇가지 예제만 포스팅 할 예정이다. 셰이더 그래프에 대한 기초지식에 대해서는 고라니님이 유튜브에 올리신 영상을 추천한다. 이 영상을 모두 이해한다면 셰이더 그래프에 대한 기초적인 지식을 모두 습득할 수 있을 것이다. 만약 책이 편하다면 "유니티 쉐이더 스타트업" 이라는 책을 추천한다.
https://www.youtube.com/watch?v=KnueAgpUL3Y&t=1364s
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=117415030
셰이더 그래프는 셰이더 그래프를 지원하는 URP, HDRP 프로젝트에서만 사용이 가능하다. 하지만 버전이 낮거나 셰이더 그래프를 지원하지 않는 프로젝트 에서도 이렇게 노드 형식으로 셰이더를 작성하고 싶을 때가 있을 것이다. 그럴 때는 Amplify Shader를 추천한다. 80달러로 약간 비싼 편이지만 유니티 셰이더 그래프보다 편하다는 분들도 많다. 가격이 부담된다면 가끔 40달러로 세일할 때를 노려보자. Amplify Shader는 유니티 버전 2018.4.36 이상을 지원하고 URP, HDRP 환경에서도 사용할 수 있다. 유니티 셰이더 그래프와 많이 유사하지만 다른 부분이 있어 익숙해지는데 시간이 걸릴 수 있다.
https://assetstore.unity.com/packages/tools/visual-scripting/amplify-shader-editor-68570
Amplify Shader에 대한 예제는 PolyToots 유튜버의 동영상들을 추천한다. 동영상 중에 제목에 "with Amplify" 라고 되어있는 것을 보면 된다.
https://youtube.com/@PolyToots
'Shader' 카테고리의 다른 글
모델링 표현 - 2 (언리얼이 그래픽이 더 좋은 이유) (0) | 2023.01.12 |
---|---|
모델링 표현 - 1 (게임 그래픽을 향상 시키는 방법) (0) | 2023.01.11 |