Unity 검색

셰이더 그래프 소개: 비주얼 에디터로 셰이더 구축

2018년 2월 27일 테크놀로지 | 3 분 소요

Unity 2018.1은 새로운 수준의 관리 기능과 유연함을 제공하며, 특히 셰이더 그래프(Shader Graph)는 2018.1에 도입된 기능 중 가장 두드러지는 기능입니다. 전문가 수준이 아니더라도 흐르는 용암, 끈적거리는 점액질 더미, 아름다운 호수, 점멸하는LED 등 다양한 셰이더를 만들어 유용하게 활용할 수 있습니다.

셰이더 그래프를 사용하면 코드를 직접 작성하지 않고도 노드를 생성하고 그래프 네트워크 형태로 연결하여 셰이더를 시각적으로 구현할 수 있으며, 다음과 같은 다양한 작업이 가능합니다.

  • 표면 형상을 절차적으로 변경
  • UV 워핑 및 애니메이션화
  • 익숙한 이미지 수정 기능을 사용한 오브젝트의 외형 수정
  • 월드공간 내 위치, 노멀, 카메라와의 거리 등 오브젝트의 표면과 관련한 유용한 정보를 기반으로 오브젝트의 표면 변경
  • 머티리얼 인스펙터에 프로퍼티를 노출하여 씬의 컨텍스트에 따라 셰이더의 비주얼을 신속하게 미세 조정
  • 하위 그래프를 생성하여 여러 그래프와 사용자 간 노드 네트워크 공유
  • C# 및 HLSL을 통해 자체적으로 커스텀 셰이더 그래프 노드 생성

그래프 프레임워크를 통해 변경 사항에 대한 피드백을 바로 확인할 수 있으며, 초심자도 셰이더를 작성할 수 있을 만큼 사용이 간편합니다.

셰이더 그래프는 현재 베타 버전을 사용하실 수 있습니다! 샘플 프로젝트를 다운로드하여 Unity 2018.1 베타로 열고 살펴보세요. 셰이더 그래프는 패키지 관리자를 통해서도 다운로드할 수 있습니다.

셰이더 그래프는 Unity 2018.1의 또 다른 기능인 스크립터블 렌더 파이프라인(SRP)에서 작동하며, 내장된 레거시 Unity 렌더러에서는 사용할 수 없습니다. 셰이더 그래프는 기본적으로 다음을 지원합니다.

  • HDRP(High-Definition Render Pipeline; 고해상도 렌더 파이프라인)
  • LWRP(Lightweight Render Pipeline; 경량 렌더 파이프라인)

시스템을 확장하여 직접 작성한 커스텀 SRP용으로 셰이더를 익스포트할 수도 있습니다.

셰이더 그래프 생성 방법

Unity 2018.1에서 셰이더 그래프는 일반적인 셰이더로 표시됩니다. 셰이더 그래프를 만들려면 생성(Create) 메뉴를 클릭한 다음, 드롭다운에서 셰이더 그래프(Shader Graph)를 선택합니다. 그러면 프로젝트에 셰이더 그래프 에셋이 생성됩니다. 에셋을 두 번 클릭하거나 그래프 열기(Open Graph) 버튼을 선택하여 셰이더 그래프 편집(Shader Graph Edit) 창을 불러올 수 있습니다.

셰이더 그래프를 열면 먼저 '마스터 노드(Master Node)'가 표시됩니다. 이 마스터 노드에 노드를 연결하여 표면의 모습을 표현하게 됩니다. 기본 머티리얼 모델에 대해 자세히 알아보려면 기존 스탠다드 셰이더 문서를 참고하세요.

이제 기본값을 변경하기만 하면 표면을 간단히 편집할 수 있습니다. 더욱 텍스처를 비롯한 다른 복잡한 인터랙션도 추가할 수 있다는 것입니다. 마우스 오른쪽 버튼을 클릭하고 '노드 생성'을 선택하기만 하면 노드를 추가할 수 있습니다.

셰이더 그래프에 포함된 각 노드에는 다양한 입력값이 있으며, 원하는 대로 커스터마이즈할 수 있는 기본값이 포함되어 있습니다.

원하는 에셋 유형의 노드를 만들고 연결하기만 하면 텍스처를 비롯한 다양한 에셋을 손쉽게 추가할 수 있습니다.

Unity에서 셰이더 그래프(Shader Graph) 셰이더는 일반적인 셰이더와 똑같이 표시됩니다. 인스펙터의 오브젝트를 마우스 오른쪽 버튼으로 클릭한 다음 머티리얼 생성(Create Material)을 선택하세요. 하나의 셰이더에서 여러 개의 머티리얼을 만들 수 있습니다.

셰이더의 파라미터를 간편하게 노출시켜 셰이더에서 생성하는 머티리얼에서 덮어쓸 수 있습니다. 셰이더 그래프에서 원하는 파라미터 노드를 마우스 오른쪽 버튼으로 클릭한 다음 '프로퍼티로 전환(Convert to Property)'을 선택합니다. 노출된 파라미터가 셰이더에서 생성한 머티리얼의 머티리얼 인스펙터에 표시됩니다.

더 많은 튜토리얼을 보고 싶어요!

3월 7일에 셰이더 그래프에 관한 라이브 교육 세션이 개최됩니다! 유니티 이벤트 페이지에서 교육 세션에 등록하세요. 세션의 녹화본을 시청하려면 TwitterYouTube에서 유니티를 팔로우하세요. GDC에서도 셰이더 그래프에 관한 여러 대담이 진행됩니다. 새로운 소식을 받아보려면 여기에서 등록하세요.

앤디 터치(Andy Touch)의 GitHub의 셰이더 그래프 예시 라이브러리에서도 유용한 지식을 얻을 수 있습니다!

질문이 있어요!

언제든지 물어보세요. 성심성의껏 답변해 드리겠습니다. 유니티 포럼에서 궁금하신 점을 문의해 주세요.

2018년 2월 27일 테크놀로지 | 3 분 소요