개발 · 컴퓨터공학 / / 2024. 7. 6. 09:16

천 모양의 fabric mesh cutting 자르는 방법 탐색하기 + stitching 붙이기(재단하기, 재봉하기)

728x90
반응형

 mesh를 자르는 방법에는 다양한 방법을 생각할 수 있다.

 

https://github.com/hugoscurti/mesh-cutter

하지만 내가 찾고자 하는 방법은 완전히 반으로 가르는 mesh cutting 방법보다

 

https://accidentalcutting.com/virtual-fashion/

이렇게 천을 칼로 원하는 직선 혹은 곡선으로 가르는 것을 원한다.

 

다양한 자료를 찾아보며 원하는 로직이 있는지 보자.

spline cutting

여러 자료를 보던 중 spline 곡선 cutting 방법을 찾으면 곡선의 형태로도 자르는 방법을 알 수 있지 않을까 싶었다.

찾아보니 자르는 구현방법을 찾는 것은 쉽지 않을 것 같다.

 

생각난 아이디어는 마우스를 움직이는 이벤트에 따라 vertex를 주기적으로 찍고

찍은 vertex들을 기준으로 자르는 방법이다

이 경우 추가된 vertex들을 기준으로 cut 하는 방법에 대해서도 탐구해봐야할 것 같다.

 

Virtual Cloth Cutting 

http://design-cu.jp/iasdr2013/papers/2194-1b.pdf

위 논문은 virtual cloth cutting에 대한 논문이다.

원하는 내용이 있을지 살펴보자.

 

MESUDA, Yuko, Shigeru INUI, and Yosuke HORIBA. "Virtual Cloth Cutting."APA

edge를 따라서 cutting한다는 점에서는 내가 cloth tailor에서 구현하는 방법과 일치하지만

vertex를 생성하고 재연결하는 메커니즘은 좀 다르다. 

 

내가 구현한 방식은 edge를 기준으로 구분되는 face 측면에서 분리된 vertex가 각각 어느 face를 이루어야하는지에만 초점이 맞추어져 있다면, 

논문의 방식은 i-1, i, i+1 로 vertex의 연속적인 지점을 나누어서 재연결하는 절차를 제안한다. 

 

하지만 절단하는 방법에 대해서는 명확히 어떻게 구현하였는지 알기 힘들다.

논문의 초점은 손으로 경로를 그리면 거기에 따라 잘라야하는 edge 경로를 계산하는데 있어 보인다. 

 

실제로 내가 구현한 cloth tailor의 경우도 마우스 포인터가 떨리면 잘리는 edge가 삐뚤어지는 경우가 있는데, 

그것보단 이은 선대로 제대로 자르는 로직이 먼저이다. 

 

여기서는 제대로 절단선을 따라 잘리는 것 같은데 어떻게 했을까. 

방법에 대한 언급은 

구체적으로, 절단선에 따라 새로운 입자를 생성하고, 기존 입자와 스프링을 분리하여 새로운 입자와 스프링을 재연결합니다.

이러한 말로만 나와있어서 구체적인 방법은 모르겠다. 

 

Cloth simulation

https://nccastaff.bournemouth.ac.uk/jmacey/MastersProject/MSc05/cloth_simulation.pdf

컴퓨터 그래픽스 cloth simulation에 대한 NCCA Bournemouth University 에서의 정리본이다.

 

쭉 훑어봤는데, mesh cutting과 관련된 방법은 없고 거의 cloth 의 물리적인 시뮬레이션 변형방법에 대한 로직들만 있다.

 

An efcient automatic mesh generation algorithm for planar isogeometric analysis using high‑order rational Bézier triangles

유한요소 기법 FEM에 대한 이야기와 기하학전 메쉬의 알고리즘화에 대한 이야기가 있다.

서론에서 언급하길 mesh를 자른다는 개념보다는 비선형적인 베지어 삼각형 등을 사용하는 mesh 변형 체계에 대한 CAD 모델링 관련 이야기이다.

목적과는 거리가 좀 있는 것 같다. 

 

Barroso, Elias Saraiva, et al. "An efficient automatic mesh generation algorithm for planar isogeometric analysis using high-order rational Bézier triangles."  Engineering with Computers  38.5 (2022): 4387-4408.

삼각형 mesh를 베지어 삼각형으로 만드는 과정에 대한 연구이다.

 

An Interactive Real-Time Cutting Technique for 3D Models in Mixed Reality

MR 환경에서 3D 모델을 실시간으로 자르는 상호작용 기술에 대한 연구 논문이다.

3d mesh cutting 의 일반적인 방법과 가깝고, 내가 원하는 cloth cutting과는 거리가 있다.

 

Caligiana, Paolo, et al. "An interactive real-time cutting technique for 3D models in mixed reality."  Technologies  8.2 (2020): 23.

POLYLLA: polygonal meshing algorithm based on terminal-edge regions

polygon meshing 알고리즘이다. 즉 메쉬 생성과 관련된 영역.

 

아, 생각해보니 cloth 나 fabric이 아니라
garment라는 키워드를 사용해서 검색하면 좋을 것 같다.

Retracted: Virtual Garment Piece Design and Stitching AlgorithmBased on Virtual Simulation Technology

garment 의류 조각을 설계하고 stitching 재단하는 알고리즘에 대한 연구 논문이다.

그럴듯한 주제를 갖고 있는데. 어디에서 구현 방법을 찾을 수 있을까.

Li, Guangsong. "[Retracted] Virtual Garment Piece Design and Stitching Algorithm Based on Virtual Simulation Technology."  Security and Communication Networks  2022.1 (2022): 4393042.

이렇게 플로우 차트로 어떤식으로 프로세스가 진행되는지 나와있지만, 어떻게 구현하는지는 파악하지 못했다.

 

알 수 있는 것은 stitching 재단 로직인데, edge 기반으로 stitching을 한다고 되어있다.

두 면을 같은 수의 vertex로 stitching해서 대응되는 vertex 관계를 계산하는 식이라고 한다.

 

확실히 이렇게 하면 vertex가 같아야한다는 조건을 만족하기 힘든데, 구체적으로는 어떻게 하는 걸까 싶다. 

stitching을 완료한 이후에는 물리 시뮬레이션을 진행한다고 되어있다.

 

논문에 나와있는 수식도 cutting이나 stitching에 대한것이 아니라 물리 시뮬레이션에 대한 수식만 나와있다.

stitching 방법에 대해서

다양한 상황에서 stitching을 구현하려면 많은 케이스를 생각해야하겠지만, 

논문에서 언급한 것처럼 일단 구현을 목적으로 한다면 edge의 vertex들을 1대1로 매핑하는 방법을 사용하는게 좋을 것 같다.

1대1로 연결된 vertex는 edge로 연결되는 것이 아니라. cutting과 반대로 연결된 두 vertex가 하나의 vertex로 뭉쳐지는 개념으로 구현하는 것으로 계획하고 있다. 

 

garment 말고도 fabric과 유사한 의미의 drape라는 용어를 이용할 수도 있겠다

 

찾아볼 방법은 더 많은 것 같고.

앞으로 보려는 논문은 

  • Mesh cutting during real-time physical simulation
  • Fast Simulation of Cloth Tearing
  • Garment modelling and visualisation

위 세가지 논문을 조사해보려고 계획중이다. 

728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유