유니티 쉐이더 그래프 3

vfx 장인·2026년 3월 11일
post-thumbnail

모든 방향 Wind

noise 이용하여 파도효과 만들기

위의 링크를 이용해 만든다

먼저 확실한 변칙부여를 위해 하나의 noise만 사용하지 않고,
2개의 noise를 사용하고, direction도 함께 줘서
바람이 부는것처럼 움직이도록 하겠음

먼저 아래의 scrollUV라는 SubGraph를 만들어놔야함

이렇게 scrollUV를 이용해 각 noise를 컨트롤할 speed와 size를 이용해 noise를 설정하여
두 noise의 반환값을 곱한다

0이 되는 부분은 무엇을 곱해도 0이되고,
1인부분은 무엇을 곱해도 곱한 수가 됨

1번에서 출력된 float값을 가지고,
strength라는 값과 곱해준다

strength : 힘의 크기

다만 strength를 곱한 값을 그대로 사용하면 100, 1000얼마든지 숫자가 커질 수 있으므로 적당한 값인
100을 나누어준다

direction이라는 vector3를 받아서 각 x,y,z에
strength를 곱하고 100을 나눈 값에 곱해준다.

2번에서 각각 구해진 x,y,z값을 원본 오브젝트의 x,y,z와
add를 하여 vector3로 합친 후 vertex로 연결한다

그럼 이렇게 direction값에 맞춰 x,y,z에 알맞게 noise를 줄 수있다

vertex color

깃발처럼 특정 부분은 고정되어있고, 특정부분은 움직이는 쉐이더를 만들고싶음

간단하게 표현하면

vertex color = 쉐이더 예외처리


위 사진처럼 vertex color노드를 사용해서
움직이지 않길 원하는 색상이 빨간색이면 빨간색을 lerp로
움직이는 처리가 된 vector3와 오브젝트의 position을 보간해주면 됨

그럼 아래처럼 나옴

대신 움직이는 부분은 전부 다른색으로 칠해줘야함
예를들어 빨간색부분이 안움직이고 싶으면 그 외의 부분은 빨간색이 없는 부분을 칠해야함

빨간색이 1일때, vertex color의 기본은 흰색이므로 (1,1,1)에 빨간색이 포함되어있어 전체가 안움직이게 됨ㅇㅇ

profile
인디게임개발을 하는 기획자이자 프로그래머이자 VFX디자이너입니다

0개의 댓글