본문 바로가기
OpenMesh

Mesh Smooth

by DarkRock 2023. 9. 14.
반응형

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