CGとCVの日記

Computer GraphicsとComputer Visionについて

メッシュから3Dプリント可能なワイヤフレームを作る

ボリュームワイヤモデル

太さをもったワイヤフレームモデルをボリュームワイヤと呼びます(勝手に読んでます.
Shapewaysという3Dプリントされたものを購入することができるwebサイトでもアート作品としてボリュームワイヤモデルが売られています.
f:id:daiki_yamanaka:20130815002539p:plain:right

アートとしてだけでなく実用的な応用もあります.安価な機器が登場したり3Dプリンタは一般にも普及してきましたが,材料費や造形時間などのコストはまだまだ3Dプリンタの解決すべき問題です.
ボリュームワイヤを使えば少ないコスト(時間,材料)で物体の形状を表現することができます.
プロトタイプの造形のような物体の形状を素早く見たいときに適しているかもしれません.

SIGGRAPH ASIA 2013にも"Cost-effective Printing of 3D Objects with Skin-Truss"というタイトルの論文が発表されています.タイトルから察するにサーフェス上のTruss(ワイヤ)を使って時間や材料などのコストを考慮した3Dプリンティングのためのモデリング技術の研究だと思います.
このような3Dプリンタの問題をモデリング技術でソフトウェア的にうまく解決する研究はとてもおもしろいと思います.

ボリュームワイヤの作り方

入力メッシュ
f:id:daiki_yamanaka:20130815003119p:plain:w300
ボリュームワイヤモデル
f:id:daiki_yamanaka:20130815003129p:plain:w300
3Dプリンタで作成したモデル
f:id:daiki_yamanaka:20130815003223p:plain:w300


このようにメッシュモデルを3Dプリンタで造形可能なボリュームワイヤモデルに変換します.
ボリュームワイヤを作る方法はいろいろと考えられれますが,陰関数を使いました.
入力メッシュのエッジ一本一本を独立した陰関数で表現し,それを合わせることで全体のモデルを作成します.
実装にはCGALを使いました.
ソースコードこちらです.
ある点の関数値を評価するのにすべてのエッジをチェックしてるので遅いです.
Kd-treeなどで空間的にソートしてあげると高速化できると思います.