유니티 패키지 RealtimeCSG 소개
안녕하세요, 이번 포스팅에서는 지난번 'knife' slicing 을 소개해드리면서 언급했던 mesh boolean operation 코드 두 개 중에 한 개를 다루겠습니다. 바로 'Realtime-CSG' 입니다. https://github.com/LogicalError/realtime-CSG-for-unity
혹시 지난 포스팅을 못 보신 분이시라면 제가 짧게 유용한 코드들을 정리해드리겠습니다.
| 기능 | 원리 | URL | 장/단점 |
|---|---|---|---|
| Mesh Slicing 3D | Mesh, Slicing | https://github.com/Tvtig/UnityLightsaber | 닿는 물체를 빠르게 절삭평면으로 일도양단함. / 아직 NonConvex형상(U형상)에 적합하지 않고, Ragdoll을 SkinnedMesh상태로는 자를 수 없음. Ragdoll에 쓰기 위해서는 초보자에게는 매우 하드할 수 있는 변경이 필요함. |
| Mesh Slicing 2.5D | Mesh, Slicing | https://github.com/hugoscurti/mesh-cutter | 물체를 마우스로 긋는 선대로 자름. |
| MeshBoolean | Shader, meshBoolean | https://github.com/KaimaChen/MeshBoolean | shader의 queue 순서를 바꾸고, 특수한 shader를 사용해서 비어있는 hole을 구현함. / 실제 mesh와 collider 형상은 변함 없음. |
| Paradox_CSG | Mesh, meshBoolean | https://github.com/karl-/pb_CSG | 실제 Mesh에 boolean연산을 해서 subtraction, intersection 등을 계산해서 적용해냄. 코딩하기 어렵고 컴퓨팅 부하가 많이 드는 작업을 CSG.js로 효과적으로 만들어서 C#에 얹어서 사용하고 있음. 사용하기 편함. / 그러나 마찬가지로 SkinnedMesh에 대해서는 고려가 되어있지 않기 때문에 Ragdoll에 쓰기 위해서는 초보자에게는 매우 하드할 수 있는 변경이 필요함. |
| Realtime-CSG | Mesh, meshBoolean | https://github.com/LogicalError/realtime-CSG-for-unity | 에디터 내에서 MeshBoolean을 수행함. 따라서 InGame에서의 MeshBoolean을 위한 코드는 아니고, 오히려 에디터에서 Blender없이 Level을 더 편하고 가볍게 디자인 할 수 있는 무료인 레벨 디자이너임.(이번 포스팅 주제) |
Mesh Slicing 3D / Mesh Slicing 2.5D
MeshBoolean(Shader) / Paradox_CSG(Mesh)
그럼 이제 제가 추천드리는 Realtime-CSG에 대해 짧게 소개해드리겠습니다. 좋은점은, 일단 1. 무료 오픈소스다.
- 가볍다 (2.6MB)
- 다양한 Boolean Operation이 Unity 에디터 내에서 다 가능하다.
- 자르기(Clip)기능도 있다.
- 오브젝트의 특정 표면에 위치한 점과 가까운 3D그리드 지점에 지정하여 오브젝을 생성할 수 있다.
- 만든 형상을 프리팹으로 저장할 수 있다.
- 놀랍다.
- 놀랍다..
[영상]
여기까지 제가 다음에 또 찾아 보기 위해 정리한 내용들이었습니다..!ㅎㅎ 저처럼 Unity로 mesh slicing에 관심을 가져본 분이라면 아주 유용한 포스팅이 될 것 같습니다.ㅋㅋ 혹은 보시면서 조금이라도 신기했다면 그걸로 만족합니다.
감사합니다!
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.



