ブール演算でできるだけ細かく分割されないようにしたい

ポリゴンメッシュ使用時のブール演算でできるだけ面分割がきれいに行われるようにします。
ここでは、非平面が含まれないことが前提になります。
非平面時のブール演算については「ブール演算で失敗しやすい組み合わせ」もご参照くださいませ。

以下のような、ポリゴンメッシュAに対しポリゴンメッシュBの形状でくり抜く場合を考えます。

そのままブール演算した場合

ブラウザで削る側の「ポリゴンメッシュB」を選択。
ツールボックスの「編集」-「共通」-「その他」-「ブール演算」を選択します。
ブラウザで削られる側の「ポリゴンメッシュA」を選択。
ツールパラメータで「三角形分割」チェックボックスをオフにし、「くり抜く」ボタンを選択します。

以下のようにブール演算されて面が分割されました。

穴を開けた部分が細かく三角形分割されています。

ブール演算時の分割を最適化する

ブール演算でこのような細かい三角形分割が起きる原因として、1枚の面に対して穴を開ける構造が表現できないため、というのがあります。
以下ような穴あきは1ポリゴンで表現できません。

そこで、ブール演算で削られる側の形状の面に対して、削る側の形状が通る箇所を横切るように切れ目を入れておきます。
これは、ループスライス切断を使用します。

ポリゴンメッシュAで、くり抜く円柱を横切るように切れ目を入れました。
上の2つの穴と下の3つの穴で分割を分けておくため、もう1本補助の切れ目を入れました。

再度ブール演算を実行すると、以下のようにきれいに分割されました。

この記事のタイトルとURLをコピーする
Translate »