2-manifold geometry :可以被攤開成一片連續的2D 平面
non-manifold geometry : 必須被攤開成多片連續的2D 平面
non-manifold 的模型通常會造成後續的許多麻煩,例如 bevel無效,subdivision 失敗, render 錯誤等等的問題,所以建模時必須注意並且盡量避免做出non-manifold模型.
基本上一個non-manifold 模型會有至少以下三個因素之一:
non-manifold edge : 一個線(edge) 連到三個以上的面
non-manifold vertex :
- 兩個以上的面分享一個點卻沒分享任何線, 或
- 造成 non-manifold edge 的點
lamina face : 兩個以上的面分享共同的點和線
如何用 mel 程式來偵測non-manifold問題.
non-manifold vertex:
{
string $selected[]=`ls -sl`;
string $nmv[] = `polyInfo -nmv $selected`;
if(size($nmv)>0)
{
select -r $nmv;
warning("polygon has non-manifold vertices");
}
};
non-manifold edges :
{
string $selected[]=`ls -sl`;
string $nme[] = `polyInfo -nme $selected`;
if(size($nme)>0)
{
select -r $nme;
warning("polygon has non-manifold edges");
}
};
lamina faces:
{
string $selected[]=`ls -sl`;
string $lf[] = `polyInfo -lf $selected`;
if(size($lf)>0)
{
select -r $lf;
warning("polygon has lamina faces");
}
};
Maya 的 cleanup 功能 (Mesh->Cleanup...) 可以自動幫你移除掉 non-manifold / lamina faces ,可是出來的結果可能不是你預期的,所以還是建議手動把這些問題解決.
假設你文章是強調 2-manifold 的話,那麼 non-manifold edge 就是指一個 edge 連接的 face != 2 的情況才是。
回覆刪除阿對,我有打錯.....
回覆刪除原本我是寫 ->
non-manifold edge :一個線(edge) 連到兩個以上的面.
應該是 : 一個線(edge) 連到三個以上的面
只連到一個面(face)的線(edge) = 邊線(border edge), 還是屬於 2-manifold, 因為 2-manifold 可以是 closed manifold 或 2-manifold with boundary.
very clear!
回覆刪除看了半天才發現是葉教授你啊~
回覆刪除是我啊,哈.
回覆刪除歡迎歡迎~~