2017-04-03 (月)
久しぶりの仕事.評価の時期か...面倒だけど色々書く.
3Dプリンタ用のモデリングをしていると,作るものによってはナイフとブーリアン演算を多用するので,メタセコイア上で自動化するスクリプトを書いてみた.最初はメニュー操作するキー入力イベント送るだけで済まそうと思っていたけど,キー操作だけで完結しない上に,エラーダイアログ出る場合があって面倒になって,csg.js使って全部JavaScriptで処理することにした.後でWebGLで遊ぼうと思ってたの覚えてて良かった.
csg.jsはBSP木の構造をそのままポリゴンに変換するので,無駄な分割が存在するけど,分割元の面を追跡できるようになってるので雑なアルゴリズムでも元のポリゴンの状態を再現できるし,マテリアルとかも復元できる.
左がBSPの構造をそのままポリゴンに変換したやつで右が元の面をなるベく保つようにしたやつ.凹ポリゴンになる可能性許すならもう少し面数減らせそう.
とりあえず,オブジェクト名に特定形式で論理演算式が入っていると自動でCSGするようにしたので,ソリッドモデルがかなり扱いやすくなった.