スポンサーリンク

| キーワード:,

VCG Library でスムージング

http://vcg.isti.cnr.it/vcglib/trimesh__smooth_8cpp_source.html

VCG Libraryでスムージングするには、VertexCoordPasoDoble関数を使います。公式のサンプルにあるように

vcg::tri::Clean<MyMesh>::RemoveDuplicateVertex(mesh);
vcg::tri::Clean<MyMesh>::RemoveUnreferencedVertex(mesh);
vcg::tri::UpdateTopology<MyMesh>::VertexFace(mesh);

が必要です。

さらに、 VertexCoordPasoDoble 関数内で、

RequireVertexCompactness<MeshType>(m);
RequireFaceCompactness<MeshType>(m);
RequireEdgeCompactness<MeshType>(m);
RequireTetraCompactness<MeshType>(m);

とチェックが入っているので、

vcg::tri::Allocator<MyMesh>::CompactVertexVector(mesh);
vcg::tri::Allocator<MyMesh>::CompactEdgeVector(mesh);

等が必要になる場合があります

vcg::tri::Clean<MyMesh>::RemoveDuplicateVertex(mesh);
vcg::tri::Clean<MyMesh>::RemoveUnreferencedVertex(mesh);
vcg::tri::UpdateTopology<MyMesh>::VertexFace(mesh);
vcg::tri::Allocator<MyMesh>::CompactVertexVector(mesh);
vcg::tri::Allocator<MyMesh>::CompactEdgeVector(mesh);
int Step = 2;
int NormalSmoothStep=3;
float Sigma=0.5;
int FitStep=4;
for (int i = 0; i < Step; ++i)
{
  vcg::tri::UpdateNormal<MyMesh>::PerFaceNormalized(mesh);
  vcg::tri::Smooth<MyMesh>::VertexCoordPasoDoble(
    mesh,
    NormalSmoothStep,
    Sigma,
    FitStep
  );
}

VCG Library メッシュからfaceのみを削除する

VCG LibraryのBall Pivotingでメッシュ生成

VCG LibraryでkdTree

VCG Library でスムージング

VCG Library ターゲットの周辺のオブジェクトを取得

VCG LibraryでMeshに三角形を登録する方法

VCG Library でポリゴンファイル保存

VCG Libraryで色のついたポリゴンの読み込み・表示

VCG LibのFace-FaceやEdge-Faceなどの関連付け

VCG Library

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: