오다기리 박의 알고리즘 노트

Non-Manifold Topology 메쉬 본문

컴퓨터 그래픽스/메쉬 기하학

Non-Manifold Topology 메쉬

오다기리 박 2022. 6. 10. 18:34

우리가 3D 모델링을 할 때 가상의 객체를 만들어 내는데 그러다 보면 현실에 존재할 수 없는 형태의 메쉬를 만들기도 한다. 이런 메쉬를 Non-manifold 메쉬라고 한다. (정확히는 Non-manifold topology인 메쉬)  Non-manifold 메쉬는 일반적인 메쉬 알고리즘이 작동하지 않을 뿐더러, 3D 프린터로 출력할 수도 없기 때문에, 메쉬의 어느 부분이 non-manifold 요소인지 판별해서 고쳐나가는 작업을 진행해야 한다. 어떤 경우에 non-manifold 요소가 생기는지 알아보자. 여기서 메쉬는 orientable surface라고 가정한다.

 

 

Non-manifold Vertex

 

그림과 같이 한 점을 공유하는 삼각형 집합이 2개 이상인 경우이다. 정점 주변의 삼각형을 그룹별로 묶어보면 검출할 수 있다. 이 경우에는 두 집합을 분리시키던지, 아니면 한쪽 집합을 제거해줘야 한다.

 

 

 

 

Non-manifold Edge

 

그림과 같이 에지의 인접면이 3개 이상인 경우이다. 대표 에지를 여러개의 부분 에지로 나눠서 표현한다면 검출할 수 있다. 그림 같은 경우에는 빨간 에지가 3개의 부분 에지를 가지게 된다. 각 면이 바라보는 방향을 따져서 어느 면을 떼어내야 할지 생각해봐야 한다.  

 

 

 

 

Non-manifold Face

 

아래 그림은 두 큐브가 하나의 면을 동시에 갖는 이상한 경우다. 만약 빨간 면의 법선이 오른쪽을 향하고 있다면, 왼쪽 큐브 입장에서는 정상적이지만 오른쪽 큐브 입장에서는 빨간 면의 방향이 반대로 뒤집혀 있다고 볼 수 있다. 이런 경우는 해당 면을 제거해 주거나 면을 두 개로 분리시켜 큐브를 두 개로 떼어내는 작업을 해야 한다.