Unity Shader Graph 기본 사용법

2024. 12. 23. 21:35Unity

Unity Shader Graph 기본 사용법

Shader Graph는 Unity에서 비주얼 스크립팅 방식으로 셰이더를 제작할 수 있는 강력한 도구입니다. 코드 없이도 직관적인 인터페이스를 통해 다양한 셰이더를 제작할 수 있어, 디자이너와 개발자 모두에게 유용합니다. 이번 포스팅에서는 Shader Graph의 기본 사용법과 간단한 셰이더를 만드는 과정을 다룹니다.


1. Shader Graph란?

Shader Graph는 Unity에서 제공하는 시각적 셰이더 제작 툴로, 노드 기반 인터페이스를 통해 복잡한 셰이더를 쉽게 제작할 수 있습니다.

  • 직관적: 코드를 작성할 필요 없이 드래그 앤 드롭으로 셰이더 구성 가능.
  • 실시간 미리보기: 변경 사항을 즉시 확인 가능.
  • 확장성: 기본 제공 노드를 활용하거나, 커스텀 함수를 추가해 독창적인 효과 구현.

2. Shader Graph 프로젝트 설정

  1. SRP 설정
    Shader Graph는 Scriptable Render Pipeline(SRP)에서만 동작합니다.
    • URP(Universal Render Pipeline) 또는 HDRP(High Definition Render Pipeline)를 사용해야 합니다.
    • Unity Package Manager에서 URP 또는 HDRP 설치.
  2. Shader Graph 설치
    • Window > Package Manager로 이동.
    • Shader Graph 패키지를 검색하고 설치.

3. 새로운 Shader Graph 만들기

  1. Shader Graph 생성
    • Project 창에서 우클릭 → Create > Shader Graph > PBR Graph 선택.
    • 생성된 셰이더 파일의 이름을 지정.
  2. Material에 Shader 적용
    • 새로운 Material을 생성하고, Shader Graph에서 생성한 셰이더를 할당합니다.
    • Material을 원하는 GameObject에 적용.
  3. Shader Graph 열기
    • Shader 파일을 더블 클릭하면 Shader Graph 에디터가 열립니다.

4. Shader Graph 기본 구성

Shader Graph는 크게 세 가지 영역으로 나뉩니다.

  • Main Preview: 결과를 실시간으로 확인할 수 있는 미리보기 창.
  • Node Graph: 셰이더를 구성하는 노드가 배치되는 작업 공간.
  • Blackboard: Property(속성)와 Keyword를 관리하는 패널.

5. 간단한 Shader 제작 예제

예제: 움직이는 물결 효과

  1. Property 추가
    • Blackboard에서 Vector1 Property를 추가하고 이름을 Speed로 설정.
    • Speed 값을 통해 물결의 움직임 속도를 조절할 수 있습니다.
  2. 노드 추가
    • Time 노드: 시간 값을 가져옵니다.
    • Sine 노드: 시간에 따라 파형을 생성합니다.
    • UV 노드: 텍스처의 UV 좌표를 가져옵니다.
    • Add 노드: UV 좌표에 Sine 값을 더합니다.
  3. 텍스처 연결
    • 텍스처 노드와 연결하여 움직이는 파동 효과를 만듭니다.
  4. Color 추가
    • Base Color 노드에 텍스처와 함께 곱하여 색상을 조정합니다.
  5. 결과 연결
    • 모든 노드를 PBR Master 노드에 연결해 셰이더 완성.

6. Shader Graph 활용 팁

  1. 정리된 노드 배치
    • 복잡한 셰이더일수록 노드 간의 배치를 깔끔히 정리하여 작업 효율을 높입니다.
    • 그룹 노드를 사용해 특정 작업을 묶어 관리하세요.
  2. Property 활용
    • 다양한 Property를 추가해 Material Inspector에서 값을 실시간으로 조정 가능.
    • 예: 색상, 속도, 강도 등을 Property로 설정.
  3. Custom Function 활용
    • Shader Graph만으로 구현하기 어려운 부분은 HLSL 코드를 추가할 수 있습니다.
    • Custom Function 노드를 통해 고유한 기능을 셰이더에 통합하세요.

7. Shader Graph로 제작 가능한 셰이더

  • 애니메이션 셰이더: 파동, 흔들림, 텍스처 이동 효과.
  • 환경 효과: 물, 불, 구름 등의 자연 효과.
  • 고유한 텍스처 셰이더: 색상 변화, 패턴 생성.
  • 반사 및 굴절 셰이더: 메탈릭한 재질 표현.

8. 요약

Shader Graph는 Unity에서 비주얼 방식으로 셰이더를 제작할 수 있는 강력한 도구입니다.

  • 간단한 UI로 다양한 셰이더 효과 구현 가능.
  • Property와 노드의 활용으로 유연한 작업 가능.
  • 최적화된 환경에서 실시간 성능 확인 가능.