저번에 잘난듯이 물 쉐이더 넣어다가 강의했는데
강좌에 사용된 WACO 물 쉐이더가 최근 들어 기본 설정으로 VR에서 제대로 작동하지 않는다고 합니다 ㅡㅡ;
근데 물 셰이더는 사용법이 좀 복잡하고 그래서 다 설정법이 다르기도 제가 사용할 줄 아는 것에 한해서 하니 하나씩 살펴볼까 합니다.
1. SilVR Water Shader
https://www.google.com/url?q=https://drive.google.com/file/d/1K8f6Tke32PGhih8VNxLgfFRg49_ls9aq/view?usp%3Dsharing&sa=D&ust=1553086253959000&usg=AFQjCNHzpioAh1DzFVqxdnYN16uYWE6T2Q
아주 예쁜 물 반사 쉐이더입니다. 저절로 파도치거나 하는 효과는 없지만 아바타와 닿으면 찰박찰박하는 효과도 줘요.
바다보단 풀장에 가까운 효과를 주고 아마 꽤 무겁습니다.
내부를 잘 살펴보면 Prefab 파일이 있습니다. 딱 드래그 해줍니다.
하이어라키에서 Pool(Move This)를 선택한 뒤 스케일을 조작해서 원하는 사이즈로 바꿔줍니다. 여기서 Y축 스케일은 1로 내버려둡니다.
그 안을 살펴보면 카메라가 있습니다. 아무래도 렌더텍스쳐를 쓰는 쉐이더인가보군요. 이 카메라의 크기도 바꿔야겠습니다.
흰색 점을 드래그해서 풀과 같은 크기로 맞춰주세요.
이제 Test_Sphere를 씬에서 움직여 물 표면에 부딪히면서 잘 물이 찰박거리는지 확인해주세요.
다 좋은데 물 표면이 이상한 부분을 반사하고 있군요. 바꿔줍시다.
Water Surface.mat 파일을 찾아서 Ctrl+D로 복사하고 이름을 바꿔줍니다.
여기선 Surface_LECT라고 지어보겠습니다.
클릭해서 인스펙터로 살펴보면 큐브맵을 사용해서 반사할 표면을 그리고 있습니다.
별개의 큐브맵이 필요하겠군요. 여기서는 리플렉션 큐브를 이용해 간단히 큐브맵을 만들어보겠습니다.
라이팅 탭으로 가서 Auto Generate를 꺼주세요.
(화면에 Lighting 탭이 보이지 않는다면 Window->Lighting->Setting으로 켜줄 수 있습니다.)
이제 하이어라키에 우클릭 -> Light -> Reflection Probe를 클릭해서 리플렉션 프루브를 만들어줍니다.
리플렉션 프루브를 인스펙터로 살펴보면 Bake 버튼이 보입니다.
이제 리플렉션 프루브를 중심으로 주변을 카메라로 찍어서 정육면체 전개도 형태로 보존해줄 겁니다.
단, Replection Probe Static이 아닌 오브젝트는 찍히지 않습니다만... 여기선 딱히 이쁘게 반사를 넣어주려고 하는 게 아니라
간단히 큐브맵을 만들고 싶을 뿐이므로 생략하도록 하겠습니다.
인스펙터에서 이름 옆에 스태틱이라고 적힌 체크란에 체크해주면 스태틱이 적용됩니다.
이제 프로젝트 에셋 폴더에 씬을 저장한 폴더에 씬의 이름으로 폴더가 하나 만들어졌을 것입니다.
큐브맵입니다. 이제 리플렉션 프루브는 필요없으니 지우거나, 체크해제해두도록 합시다. (나중에 최적화를 할 때 제대로 사용됩니다.)
이제 아까 만든 Surface_Lect 마테리얼로 돌아가 큐브맵을 이걸로 설정해줍시다.
아무것도 변하지 않겠지만 그것은 마테리얼을 적용하지 않아서 그렇구요. WaterSurface, WaterSurface(1)라는 오브젝트를 하이어라키에서 찾아서
마테리얼을 바꿔줍니다.
이제 Surface_LECT 파일의 설정값을 원하는대로 만져서 바꿔주고, 다 끝나면 Test_Sphere도 지우고 테스트 빌드하시면 되겠습니다.
와! 첨벙첨벙!
2. Silent's Clear Water Shader
https://www.google.com/url?q=https://gitlab.com/s-ilent/clear-water&sa=D&ust=1553086253964000&usg=AFQjCNFoH20BP1tIgv6Xg43cek-bUujRtQ
다운로드 받고 압축풀고 넣어줍니다.
README 파일도 있으니 한번 읽어줍니다.
물 노말맵 파일을 구글링으로 구해서 Wave Texture 슬롯에 넣어주고
거품 텍스쳐를 구해서 거품 슬롯에 넣은 다음에 맘대로 설정을 만지라고 하는군요.
일단 거두절미하고 시작합니다. 원하는 곳에 Material을 하나 만들어줍니다.
Arisu라고 이름 짓겠습니다.
마테리얼을 인스펙터로 조사하고, 맨 위에서 쉐이더를 Silent->Clear Water로 바꿔줍니다.
이제 텍스쳐를 넣어야하는데, 그 전에 적당히 물을 펴바를 Quad를 만들어서 원하는 크기로 배치하겠습니다.
이 과정은 많이 했으니 생략. 적당히 펴발랐으면 이제 이 Quad에 이 Arisu를 적용시켜놓겠습니다.
뭔가 휑하군요.
이제 텍스쳐를 찾아서 적용합니다. 구글에서 water normal map 이라고 검색해서 맘에 드는 애를 찾아서 넣어줍니다.
노말맵이 아닌데요!! 하면 밑의 Fix 눌러주면 됩니다.
밑에 Foam 이라고 보이는 곳이 있으니 거품 텍스쳐도 검색해서 찾은 다음 이와 같이 반복하면 되겠죠?
씬에선 자꾸 큐브 뒤에 표시되는 이상한 모습을 보이지만 인 게임(Game 탭에서도 확인 가능)에선 멀쩡합니다.
와! 워터!
궁금하신 점 있으면 괘념치 말고 댓글 주세요 원래 할 일 없어서 강좌 쓰는겁니다