반응형
Mesh Smooth는
Mesh의 형상을 부드럽게 바꿔주는 기능을 합니다.
아래 그림을 보면 왼쪽에 보이는 울퉁불퉁한 Sphere를 오른쪽 형상같이 좀 더 부드럽게 형상을 변형시켜 준다고 보면 됩니다.
이 기능도 OpenMesh를 이용하면 간단히 구현이 가능합니다.
먼저 Smooth 함수를 call 할 수 있는 헤더를 include 해주고
#include <OpenMesh/Tools/Smoother/JacobiLaplaceSmootherT.hh>
아래와 같이 코드를 작성하면 된다. 아래코드는 sphere.stl 파일을 읽어서 smooth를 처리한 후 sphere_smooth_output.stl로 저장하는 코드입니다.
typedef OpenMesh::PolyMesh_ArrayKernelT<> MyMesh;
using namespace std;
#include <OpenMesh/Tools/Smoother/JacobiLaplaceSmootherT.hh>
void testSmooth()
{
MyMesh mesh;
if (!OpenMesh::IO::read_mesh(mesh, "sphere.stl"))
{
cout << "read error" << endl;
exit(0);
}
OpenMesh::Smoother::JacobiLaplaceSmootherT<MyMesh> smoother(mesh);
smoother.initialize(
OpenMesh::Smoother::JacobiLaplaceSmootherT<MyMesh>::Tangential_and_Normal,
OpenMesh::Smoother::JacobiLaplaceSmootherT<MyMesh>::C1);
smoother.smooth(10);
OpenMesh::IO::write_mesh(mesh, "sphere_smooth_output.stl", OpenMesh::IO::Options::Binary);
exit(0);
}
반응형
'OpenMesh' 카테고리의 다른 글
Halfedge Data Structure(반모서리 자료구조) (0) | 2023.11.29 |
---|---|
Cube Creation (0) | 2023.09.18 |
Mesh Subdivision (0) | 2023.09.18 |
Mesh Decimation(Simplification) (0) | 2023.08.18 |
OpenMesh 설치 및 Tutorial Example(Visual Studio 2017) (0) | 2023.08.11 |