7

サーフェス メッシュ モデルには 2 種類あります。球体や立方体のようなクローズド メッシュと、モデルのサーフェスがクローズド ループにないオープン メッシュ モデルです。中空パイプのようなところから開いています。私が欲しいのは、開いたメッシュモデルの境界頂点を検出したいということです。閉じたループ メッシュには境界線はありませんが、開いたメッシュでは、スムージング、サブディビジョンなどの操作のために境界頂点を検出する必要があります。境界頂点を選択/検出する方法を教えてください。これを行う最適な方法は何ですか? 三角形のエッジを比較して?アイデアを教えてください。

ありがとう。

4

2 に答える 2

11

マニホールド メッシュがあると仮定すると、メッシュの境界は 1 つのポリゴンのみに属するエッジになります。境界線上にないエッジは、2 つのポリゴンに属します。境界頂点は、境界エッジに属する頂点です。

境界頂点を見つける単純な方法は、すべてのエッジを繰り返し処理し、それらが属するポリゴンの数を数え、それらが 1 つのポリゴンのみに属している場合は、エッジの頂点を境界頂点として収集することです。ただし、コレクションから重複頂点を削除する必要があります。

2 番目のアプローチは、メッシュ データ構造に各エッジをメッシュに追加するとき、またはポリゴンを特定のエッジに接続するときに調べることです。このように、メッシュ データ構造は最新の境界エッジのリストを保持できるため、エッジが必要になったときに毎回それらを見つける必要はありません。これにより、境界エッジを決定するオーバーヘッドが大幅に削減されますが、エッジとポリゴンの挿入には少しコストがかかります。メッシュ データ構造も、もう少し多くのメモリを消費します。

于 2012-08-02T17:23:27.487 に答える
6

メッシュが 2D (または 2.5D) の規則的でよく構築された三角形分割であると仮定します。ここにリストされているプロパティの一部を使用できます: http://graphics.stanford.edu/courses/cs468-10-fall/LectureSlides/02_Basics.pdf

9 ページでは、頂点の次数 (または原子価) を入射エッジの数として定義しています。示されているように、すべての境界頂点は 4 つの入射エッジです。「内部」頂点には 5 つのインシデント エッジがあります。

17 ページでは、境界エッジを、ちょうど 1 つの面に隣接するエッジとして定義しています。

22 ページの議論が参考になるかもしれません (閉じた 2 多様体三角形メッシュ)。

于 2012-08-02T15:40:02.227 に答える