게임 개발/유니티

유니티) 셰이더와 변수(프로퍼티) 연결하기

UniCoti(유니코티) 2024. 12. 10.
반응형

https://alpaca-code.tistory.com/253 (앞선 글)

 

유니티) 셰이더 변수(프로퍼티) 만들기

아무 셰이더나 머티리얼에 적용시켜 보면 Aperture, Cube, Yaw, Fuzz 같은 변수들이 있다.이러한 변수들의 값을 기반으로 재질의 색상이나 반짝임, 반사 정도 등 시각적인 걸 변화시킨다. 이번 글에서

alpaca-code.tistory.com

 

앞선 글에서 변수(프로퍼티)를 만드는 과정을 소개했었다.

명도와 채도 등을 예시로 그런 변수를 실제 값에 연결만 해준다면

우리가 흔히 머티리얼에서 재질의 느낌을 조작하는 역할을 수행할 수 있다고 언급했다.

이번 글에서는 그 기능을 재현해보고자 한다.

 

셰이더

셰이더를 만들면 이런 모습일 것이다.

이전 글에서는 예시로 Float를 만들었지만 이번에는 색상 조절을 해보기 위해

Color 타입의 변수를 하나 만들어준다. (+버튼으로, 이전 글 참고)

 

이제 이 변수와 Fragment에 있는 Base Color를 연결해주기만 하면 된다.

노드의 형태로 이루어져 있기에 그냥 드래그 드롭만 몇 번 해주면 끝난다.

 

변수를 빈곳에 드래그 드롭

왼쪽 창에서 변수를 드래그하여 빈 곳에 드롭하면 위 사진처럼 떨어져 나온다.

구멍이 있는 게 보일 텐데, 이걸로 다른 값들과 연결시킬 수 있다.

 

Base Color와 연결

이렇게 Base Color와 연결했다면 준비는 끝난다.

이제 우리는 머티리얼에서 셰이더를 조작해 색을 바꿀 수 있게 되었다.

아무 물체에 머티리얼을 적용시키고 색을 바꿔보자.

 

Sphere

구를 하나 가져와서 머티리얼을 넣어줬다.

색을 바꾸면?

이렇게 색을 바꿔준다면 어떻게 될까?

 

빨간 Sphere

이렇게 우리가 연결해 준 덕분에 즉석에서 빨간색으로 변한 것을 볼 수 있다.

우리가 흔히 사용했던 다른 여러 머티리얼의 원리도 이와 같다.

 

Color뿐 아니라 다양한 타입을 다양한 수치에 연결하면

우리가 그리던 셰이더를 꽤나 쉽게 만들 수 있다.

이게 셰이더의 기초이다.


여기까지 셰이더 노드의 기초를 알아봤다. 

전문적으로 셰이더를 다루는 사람들은 코딩까지 동원해서 재질을 표현하지만

노드만으로도 꽤나 많은 것을 할 수 있다. 이 정도의 기초를 알았다면

더 활용할 수 있는 범위가 넓어졌을 것이라 생각한다.

 

물론 더 익숙해져야 하고 어떤 수치들이 있고, 어떤 타입들이 있으며

이들이 어떻게 연결되는지에 대한 경험이 필요하겠지만 전반적인

셰이더의 구조를 안 것 같아 기쁘다.


이상으로 도움이 되었길 바라며,

 

끝.

발췌 - 대마왕의 유니티 URP 셰이더 그래프 스타트업

반응형

댓글

💲 추천 글