반응형
Subdivision 기능은
Mesh의 Polygon들을 더 작게 세분화하여 표현하는 기법이라고 보면 됩니다.
아래 그림을 보면 Subdivision을 통해 왼쪽 Sphere가 오른쪽 형상으로 변형되었습니다.
Subdivision을 수행하면 vertex, edge, triangle이 증가하기 때문에 형상 파일 용량이 결과적으로 늘어나게 됩니다.
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 |