* 이 포스팅은 '대마왕의 유니티 URP 셰이더 그래프 스타트업, 2023'을 학습하고 개인 학습용으로 정리한 내용입니다.
더 자세하고 다정한 설명을 원하시면 !꼭! 책을 보시길 바랍니다.
- 책에서 사용한 Unity 버전: 2021.3.5
- 포스팅에서 사용한 Unity 버전: 2021.3.9 - Render Pipeline: URP |
|
Part02.
URP와 셰이더 그래프
|
1. 유니티 URP (Universal Render Pipeline)
2. 셰이더 그래프 (Shader Graph) |
0. 유니티 설치 & 기본 셋팅
- 이 책은 유니티 버전 2021.3.5 버전을 사용합니다.
+ 저는 포스팅에서 2021.3.9 버전을 사용합니다.
+ 설치방법은 아래 포스팅을 참고하시면 됩니다.
https://hyekunamatata.tistory.com/4
[Unity/Basic] Unity Installation (유니티 설치하기)
1. Unity Hub 다운로드 - Unity 공식 홈페이지: https://unity.com/kr/download 다운로드 지금 Unity를 다운로드하고 전 세계적으로 가장 큰 인기를 누리는 2D/3D 멀티플랫폼 경험 및 게임 제작용 개발 플랫폼을
hyekunamatata.tistory.com
+ 마지막 단계에서 '3D (URP)'를 선택하면 됩니다.
1. 유니티 URP (Universal Render Pipeline)
- Template: 반드시 3D Sample Scene (URP)로 시작하는 것이 좋다.
- 오른쪽 [Inspector] 창에서 Universal Render Pipeline에 대한 글을 볼 수 있다.
+ 제가 사용한 버전은 Empty 템플릿이 있어서 URP Empty Template을 사용했습니다.
- Forward Renderer 뿐만 아니라 Deferred Rendering도 지원하고
빌트인 버전의 유니티가 가지고 있는 기능을 대부분 구현해서
URP는 저사양만이 아닌 기존의 빌트인 렌더링 파이프라인을 대체하는 범용 파이프라인으로 자리 잡음.
- 최신 버전에는 Forward+를 추가해 Forward 렌더링의 한계를 뛰어넘기 시작
2. 셰이더 그래프 (Shader Graph)
- 전에 사용하던 서피스 셰이더(Surface Shader)를 지원하지 않고 HLSL 코드로 셰이더를 짜도록 바뀌었다.
ㄴ but 최근에 서피스 셰이더를 URP용으로 만들겠다는 로드맵이 발표됨
ㄴ 서피스 셰이더? 유니티 자체 스크립트와 CG를 이용해 만든 쉬운 버전 셰이더 코딩이 가능한 셰이더 코딩 방식
버텍스 셰이더나 대부분의 라이팅 공식을 생략해도 잘 동작되도록 만들어놓은 셰이더
- 아티스트 들이 셰이더를 쉽게 만들 수 있는 비주얼 셰이더 에디터(Visual Shader Editor)를 추가
= 셰이더 그래프(Shader Graph)
- 노드(Node)라고 하는 블록을 붙여서 코딩을 모르는 아티스트 들도 쉽게 셰이더를 만들 수 있다.
+ 두 개의 버전 비교해 보면 마스터 스택(Master Stack)이 가장 많이 바뀐 걸 알 수 있습니다.
최신 버전이 Vertex, Fragment가 나뉘어 있어서 더 직관적이네요!
1) 셰이더 그래프(Shader Graph)와 HLSL 셰이더
- HLSL = High Level Shader language의 약자
- HLSL은 Direct X에서 사용 가능한 셰이더 언어
- C언어와 매우 닮은 코딩이다 보니 코딩 지식이 부족한 아티스트가 처음부터 다루기에는 조금 힘들다.
- 셰이더 그래프는 사실상 HLSL 셰이더를 노드 형태의 껍데기로 감싸 놓은 것
- 그래서 셰이더 그래프로 제작된 것은 HLSL 셰이더로 다시 변환되어 적용되며, 각 노는 함수로 관리됨.
- Custom Function 노드를 사용하면 직접 HLSL코드를 작성하여 셰이더 그래프 안에서
사용할 수 있는 노드를 만들 수 있다.
- 셰이더 그래프를 선택하면 Inspector에서 View Generated Shader 버튼을 볼 수 있는데,
누르면 HLSL로 변환된 셰이더 확인 가능
- 물론 이 HLSL 코드를 수정해서 저장해도 반영되지는 않는다. 또한 자동으로 생성된 코드라 알아보기도 쉽지 않음.
- 디버깅이나 프로파일링을 위한 함수 확인을 위해서라면 쓸만함.
2) 셰이더 그래프(Shader Graph)와 앰플리파이드 셰이더 에디터(Amplify Shader Editor)
[ 앰플리파이드 셰이더 에디터 (Amplify Shader Editor) ]
- 셰이더 그래프가 나오기 전부터 에셋 스토어에서 유료로 판매 중인 유니티용 비주얼 셰이더 에디터
- 다양한 예제와 강력한 기능으로 유명
- URP 뿐만 아니라 HDRP나 빌트인 파이프라인까지 빠르게 업데이트됨 => 많은 유저들 LOVE!
- 각 노드가 함수역할을 하며, HLSL로 자동 변환되어 사용되는 구조
- 유니티 셰이더 그래프와 호환X, 유니티 내부에서 만든 툴 X
→ 업데이트 조금 느릴 수 있다. but 상당히 빠른 속도로 업데이트해 주기 때문에 사용하기 좋다.
* +로 표시된 건 제가 추가한 부가 설명입니다.
* 삽입되는 이미지는 제가 캡쳐한 것입니다.
'Unity > ShaderGraph (대마왕님)' 카테고리의 다른 글
[Unity/ShaderGraph] 03-1. 렌더링 파이프라인 (Rendering Pipeline) (3) | 2023.04.19 |
---|---|
[Unity/ShaderGraph] 01. 셰이더란 무엇? 왜 배워야 할까? (5) | 2023.04.18 |
[목차] 대마왕의 유니티 URP 셰이더 그래프 스타트업 (2) | 2023.04.14 |
댓글