unity water 쉐이더 만들기!
여러가지 튜토리얼을 참고, 조합해서 만든 water 쉐이더로, 파도 노말을 블랜드 시켜서 양쪽으로 흘러가게 만들어 주었다. 'Fresnel' 은 바다의 색을 두가지로 (겉면과 안쪽면) 혼합할 수 있어 겉은 노란빛의 색, 깊은 속은 푸른빛으로 설정해 주었다.
*단, 투명도를 많이 높이게 되면 두가지 혼합 색이 많이 나오지 않음.
모든 조절이 필요한 fresnel, normal power, glass 등등 property로 설정 후, inspector 창에서도 조절이 가능하게 만들었다. 그 외에도 추가적으로 필요한 쉐이더 그래프를 짰을 경우, proprety로 추가 가능하다. (왠만하면 property로 설정해 inspector에서 조정 가능하게 만드는 것이 좋음) 만약, property로 설정 해주지 않는다면, 매번 shader graph를 켜서, 변경 후 저장해야만 확인 가능하다. 특히 color나 바로바로 변경하면서 확인해야 하는 것들은 이런 과정이 굉장히 번거로워지기 때문에 property를 꼭 사용하는 것이 좋다.
①lit master - 여기서 사용한 릿 마스터 라는 쉐이더 그래프는 HDRP(고해상도 렌더 파이프라인)로, Pack Manager에서 update 해서 사용 가능하다. (Create → Shder → Lit Graph)
Material Type 도 변경이 가능하며, Standard, Subsurface Scattering, Anisotropy, Iridescene, Specular Color, Translucent 등이 있고 원하는 타입으로 맞춰 사용하면 된다.
②Base Color - Lerp를 이용해서 color 두가지를 더해주고, property로 두가지 색을 지정. Fresnel로 물의 겉과 속으로 컬러로 나눈다는 것을 지정해준다.
③Normal - 파도 치는 것을 현실감 있게 주기 위해 파도 노말 텍스쳐를 불러온다. 같은 텍스쳐 노말을 두번 사용한다. Tilling And Offset으로 uv를 원하는 만큼 타일링 해준다. (x,y 값으로 조정)
vector와 time 노드를 사용 multiply로 엮어 준다. (vector 값을 property로 만들어 스피드를 제어한다)
④Smoothness - glass 농도를 조절해 준다(property로 꼭 빼놓을 것**)
⑤Alpha - 투명도 조절을 해준다. 이때, Fresnel 을 가져와서 겉-속 까지 자연스럽게 투명하게 만들어 준다.
(이때, One Minus 로 반대로 뒤집어준다**, Fresnel Effect 노드를 보게 되면 겉이 화이트, 속이 블랙이므로 반대로 뒤집어서 사용해야함***)
더 많은 노드를 효율적으로 사용할 수 있는 'lit master' 노드를 선택하게 되었고, HDRP가 좋은 퀄의 사실적인 어셋을 만들 수있어서 사용하게 되었다. Lit master 안에 많은 옵션 설정이 있고, 그 때문에 water 같은 여러 노드가 필요한 쉐이더 그래프를 짤때는 Lit master가 좋은 것 같다. 여러 튜토리얼을 따라하다 보면 원하는 property가 없어서 주춤할 때가 많다. 어떤 렌더 파이프라인을 선택할지, 어떤 쉐이더 그래프를 사용할지 고민 후에 시작하는 것이 좋다.
'unity_3d' 카테고리의 다른 글
[unity]유니티 3D, 알아두면 좋은 것들! (0) | 2020.12.18 |
---|---|
[unity]애니메이션 들어간 fbx 파일 유니티로 임포트 하기! (0) | 2020.12.09 |
[Unity]유니티 alembic 파일 import (abc 파일) (0) | 2020.08.07 |
[Unity]unity_light 기초에 대해 알아보기 (0) | 2020.03.10 |