エッジの凹凸判定

たまにはモデリングに利用するスクリプトの計算法なんかも書いてみようと思います。

今回はエッジが外側か内側かを判別する方法です。たとえばテクスチャーを描くためにアウトラインのエッジのみを抽出したいこととか、ありますよね?

自分の方法はこんな感じ。

select_edge

エッジのベクトル①を取得する。

エッジに隣接しているポリゴンの法線ベクトル②、③を取得する。

エッジのベクトル①と法線ベクトル②との外積から従法線ベクトル④を求める。

従法線ベクトル④ともう片方のポリゴンの法線ベクトル③の内積を求める。

内積の値が0の場合、二つのポリゴンは平行。
内積の値が正の場合、凹。
内積の値が負の場合、凸。

select_edge_outer

外側のハードエッジを選択した場合。

select_edge_inner

内側のハードエッジを選択した場合。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中