2024. 4. 3. 17:13ㆍUnity
Unity는 URP 환경에서 물의 부피를 구할 수 없다.
HDRP로 가야 Water Volume을 구할 수 있어 보이는데, 텍스쳐 셰이더를 이용한 물의 흐름은 부피의 출렁거림을 표현하는 데에 제한적이기 때문에 URP에서도 물리적인 물을 어떻게 구현할지를 찾아보았다.
아래의 유튜브를 참고했다.
https://www.youtube.com/watch?v=ihY4KkSXfhI
https://www.youtube.com/watch?v=3EskeIwg2hA
블렌더에서는 다음과 같은 Fluid Simulation이 가능하다.
이런 시뮬레이션을 유니티로 가져와서 Timeline으로 실행하여 보여질 수 있게 할 수 있다.
https://github.com/Unity-Technologies/com.unity.formats.alembic
먼저, 블렌더에서 Constraints - Fluid에서 Domain으로 설정된 객체를 선택하여 .abc 파일로 export 한다.
PackageManager에 "com.unity.formats.alembic"으로 패키지를 설치하고 .abc 파일을 드래그앤 드랍으로 가져오면 fbx 형태처럼 가져와진다.
Domain의 가장 하위 진짜 액체로 표현될 객체를 선택한 후, Timeline을 새로 만든다.
Alembic Track 추가,
Alembic Track의 가장 오른쪽 점 세 개를 눌러서 [Alembic Shot] 추가
생성된 Timeline 부분을 누르고 [Stream Player] 부분에 fbx 끌어다 놓기
재생하면 시뮬레이션이 Timeline에서 재생으로 보여지게 된다.
주변 경계면으로 쓰인 컵 모델링을 붙여주면 그럴듯한 모양이 나온다. 메테리얼을 잘 쓰면 더 좋을 듯 하다.
이 기술의 단점은 모바일 환경에서는 사용할 수 없고, Mac과 Window의 PC 빌드만 지원한다는 점이다...
하나 더, 물 자체가 부피를 차지하고 있기 때문에 Vertex 수와 Polygon 수가 높다는 점.
'Unity' 카테고리의 다른 글
[Unity] Unity Muse 사용해보기(1) -Texture 편 (1) | 2024.04.18 |
---|---|
[Unity] 그래픽스 최적화 - Graphics Jobs, Use incremental GC 기능 (0) | 2024.04.18 |
[Unity] AssetBundle 정리 (0) | 2024.03.28 |
[Unity] IL2CPP 정리 (0) | 2024.03.26 |
[Unity] Occlusion Culling, Overdraw, Sprite Atlas, Blend Tree, Set Pass Call, Batch, OBJ/FBX, NURBS/Polygon, Scriptable Object, 유니티 멀티쓰레드 오류, Euler 회전 문제점 정리 (4) | 2024.03.26 |