odyssey

#13 : odyssey 개발일지 : 바다 셰이더 만들기

san10 2023. 7. 17. 23:12

2D 바다 셰이더

지금까지 바다 셰이더를 만들었다.

구글에 바다 셰이더라고 검색하면 많은 자료가 나오지만

현실물리기반 실제같은 바다보다는

애니메이션이나 그림같은 바다를 묘사하려 노력했다.

eastward

이런 느낌으로 만들고자 했다.

 

파도 움직임 만들기

https://www.youtube.com/watch?v=eD7LmXShYcs&list=PLsPC1W5E9IRTc-Urd0Y1OaXQSv1SzxVwp&index=1 

이 영상을 참고해서..

바다의 그림자 부분을 물처럼 움직이게 만들었다.

 

바다 그림자

텍스쳐를 tiling and offset 노드로 UV를 조정하여 움직이게 하고

셀 애니메이션 처럼 끊어지는 느낌을 주고 싶어서 step 노드를 이용했다.

그리고 multiply 노드로 메인 텍스쳐의 알파값을 곱해서 필요한 부분에만 보이게 했다.

 

 

조금더 물처럼 꾸물꾸물하는 느낌이 있으면 좋을것 같아서

다른 방향으로 텍스쳐를 움직이고, 적당히 더하고 곱했다.

다른 구성 요소들하고 합치면..

 

 

바다 반짝임 표현

위 사진처럼 빛이 바다에 반사되어 반짝이는 느낌을 표현하고 싶었다.

 

그래서 어떻게 구현할까 좀 찾아보다가..

https://zhuanlan.zhihu.com/p/33890890?from_voters_page=true 

 

【技术分享】Journey中的沙丘渲染(及其shader实现)

Journey里面的沙丘渲染是很久之前一直想做的,但总是没时间。最近因为项目中在做一个沙丘的场景,所以趁这个机会来做一下。 (在这里事先声明,在场景再现中所用到的技术基本上是在尊重Jo

zhuanlan.zhihu.com

여기서 simple noise하고 노말을 이용해서 어떻게어떻게 하길래 비슷하게 만들어봤다..

결과물을 기존의 바다 셰이더의 노말에 연결해 주고..

반짝이게 하고 싶은 영역을 light2d로 만들고

노말맵을 활성화 해주면..

이렇게 반짝이는게 생겼다! ^___^