본문 바로가기
OpenMesh

Mesh Subdivision

by DarkRock 2023. 9. 18.
반응형

Subdivision 기능은

Mesh의 Polygon들을 더 작게 세분화하여 표현하는 기법이라고 보면 됩니다.

 

아래 그림을 보면 Subdivision을 통해 왼쪽 Sphere가 오른쪽 형상으로 변형되었습니다.

Subdivision을 수행하면 vertex, edge, triangle이 증가하기 때문에 형상 파일 용량이 결과적으로 늘어나게 됩니다.

<Mesh Subdivision>

 

OpenMesh에서 Subdivision을 수행하기 위해서는
아래 header를 include 한 후

#include <OpenMesh/Tools/Subdivider/Uniform/LoopT.hh>

 

아래와 같이 코드를 작성해 주면 간단히 Subdivision을 할 수 있습니다.

아래코드는 sphere.stl을 읽어 Subdivision 진행 후 output.stl로 저장하는 코드 입니다.

typedef OpenMesh::PolyMesh_ArrayKernelT<>  MyMesh;
using namespace std;

#include <OpenMesh/Tools/Subdivider/Uniform/LoopT.hh>

void testSubdivision()
{
	MyMesh mesh;
	if (!OpenMesh::IO::read_mesh(mesh, "sphere.stl"))
	{
    	cout << "read error" << endl;
		exit(0);
	}	
 	OpenMesh::Subdivider::Uniform::LoopT<MyMesh, double> loop;
	loop.attach(mesh);
	loop(1);
	loop.detach();
	
	OpenMesh::IO::write_mesh(mesh, "output.stl", OpenMesh::IO::Options::Binary);
	
	exit(0);

}
반응형

'OpenMesh' 카테고리의 다른 글

Halfedge Data Structure(반모서리 자료구조)  (0) 2023.11.29
Cube Creation  (0) 2023.09.18
Mesh Smooth  (0) 2023.09.14
Mesh Decimation(Simplification)  (0) 2023.08.18
OpenMesh 설치 및 Tutorial Example(Visual Studio 2017)  (0) 2023.08.11