[Unity] URP 물 거품 버그 해결
![[Unity] URP 물 거품 버그 해결](/_next/image?url=https%3A%2F%2Fdata.develog.develrocket.com%2Fupload%2Fdevelog%2Fuser_1777093328305%2F1787578510018-8yk4m8%2F_____2026-08-24_223424.png&w=3840&q=75)
본문 로딩 중...
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
Orthographic 카메라에서 물과 실제로 닿지 않은 산이나 오브젝트에도 거품이 생기는 문제가 있었다.

원인은 기존 셰이더가 화면상의 깊이 차이로 접촉 여부를 판단했기 때문이다. 월드 공간에서는 떨어져 있어도 화면에서 물과 겹치면 접촉한 것으로 인식했다. (산 윗부분을 보면 거품이 생긴다.)
Depth Texture에서 지형의 월드 좌표를 복원하고, 지형의 Y 높이가 실제 수면 높이와 가까울 때만 거품이 생기도록 변경했다.
half heightMask =
1.0 - saturate(
abs(scenePositionWS.y - waterHeightWS)
/ _FoamHeightRange);
물보다 카메라 앞에 있는 오브젝트도 거품 판정에서 제외했다.
half isBehindWater =
step(0.0001, sceneEyeDepth - waterEyeDepth);
거품 경계에는 step() 대신 smoothstep()을 사용해 자연스럽고 부드럽게 표현했다.

화면에서만 물과 겹치는 오브젝트에는 거품이 생기지 않고, 실제 수면 높이에 가까운 해안선에만 자연스럽게 거품이 표시된다.
SerializeReference
![[Unity] 튜토리얼 설계](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1787322579554-zopplu/_____2026-08-21_232731.png)
튜토리얼 설계
![[Unity] Event Trigger Component](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1786976296699-a3tu75/_____2026-08-17_231353.png)
Unity Event Trigger 컴포넌트
![[Unity] 튜토리얼 설계](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1787322579554-zopplu/_____2026-08-21_232731.png)
![[Unity] Event Trigger Component](https://data.develog.develrocket.com/upload/develog/user_1777093328305/1786976296699-a3tu75/_____2026-08-17_231353.png)