>>Delta

ポリゴンが閉じているか調べる(アイディアのみ)

2009年8月12日

ポリゴンが閉じているか調べる(アイディアのみ)

思いついたけどタイミングが悪いことに、これから盆休みで帰ってしまうのでプログラミングとかしばらく真面目にやらないかもしれない。最近あまりやってなかったので見方によっては現状維持でですが。

というわけでアイディアだけ書いておきます。先にやりたい人がいたらどうぞ私の代わりに実装してください。というか既にそういうのあるのかな?確認してないので、そこはご注意ください。

前置きが長くなりました。ポリゴンメッシュがあるとき、そのポリゴンメッシュは閉じたポリゴンメッシュかどうか確認したいことがあると思います。ないひともそういう需要があると思ってください。

  • 閉じたポリゴンの例: 表面だけを外に向けている
  • 開いたポリゴンの例: 穴が空いていて表面と裏面がつながっている

具体的には図のような感じです。ポリゴンの内側に水を入れたとき、水が漏れ出すような隙間があるかないかを判定したいのです。

んで、どうすれば判定できるか少し考えましたところ、閉じたポリゴンメッシュは、ある稜線に注目したとき、その稜線は必ず2つの面と接していることがわかりました(稜線を通じて面がつながっていなければならないということ)。稜線から面が1つしか出ていなかったらそこは綻びの端です。3つ以上出ていたら3面稜線ですが、これはShadeのエラーチェックが教えてくれます。

従って、全ての稜線についてその稜線を使っている面が2つあることを確認してやればそのポリゴンが閉じているかどうかわかるはずです。

そんなわけで、適当に実装すればポリゴンのほころびを探すスクリプトができそうな気がしました。以上アイディアだけ。

投稿者 CASPAR003
投稿時刻 21:57
カテゴリー Shade
コメント 2 件
トラックバック 0 件
記事へのリンク http://www.caspar003.info/delta/archive/2009/08/12/2157.html
コメント
投稿者
コメント
でった☆

winged_edge使えば簡単に実装できますが、ポリゴン数が増えてきた場合に時間がかかってしまうので、プラグインの方が実用性がありそうです。

CASPAR003

winged_edge関係のメソッドはどういう動作をするのかよくわかっていないので、考えてすらいませんでしたが、ちょっと調べてみますね。アドバイスありがとうございます。

動作速度は、確かに巨大なポリゴンになるとスクリプトでは厳しいかもしれないですねぇ。こっちは作ってみてから考えると言うことで…。

トラックバック
  • トラックバック

ブログ情報

カレンダー
2018年2月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28
最近のエントリー
最近のコメント
コメントを頂いたエントリー
コメントをくださった方一覧
コピー用紙の裏表
でった☆
CASPAR003
あのー
CASPAR003
amumo
CASPAR003
mariko
kazu
お仕事で青ざめた話
iun
iun
CASPAR003
AcrobatでPDFの一括印刷
Caesar
CASPAR003
Shadeのレンダラー仕様メモ
iun
CASPAR003
ブログ同盟本 C87 3日目 東S-04b
CON$
CASPAR003
Ca3 Post_Effector 2.0
sisioumaru
CASPAR003
sisioumaru
CASPAR003
Shade15について雑感
iun
CASPAR003
iun
色について
iun
CASPAR003
Lv67
iun
CASPAR003
雪まつり行ってきたよ
iun
CASPAR003