3DF Zephyr Freeを使って愛車を3Dモデル化してみた
https://www.3dflow.net/3df-zephyr-pro-3d-models-from-photos/
前回、イチからメッシュを張り、高木さんモデルをblenderで手作業で時間をかけて作成しました。次は愛車を3Dモデル化したくて複数枚の写真から3Dモデルを生成してくれるソフトを試してみました。
まず、複数枚の写真→3Dモデル変換ツールを調べて最初によく出てきたのは「Autodesk Remake」。
しかし、つい最近Autodesk Recapに変更されて、なかなか期限付き体験版と有料版以外見つかりませんでした。(体験版後無料で使えるかも?)
もう少し調べると3DF Zephyr Freeが出てきました。英語サイトだったので、若干不安になりつつも、さらに調べていくと、
写真→3Dモデル変換に関するとても良い記事が!
Photogrammetryのススメ ~ソフト比較と質感設定~ - 人柱系CGモデラーのTipsブログ
ここで、初めて今回やりたいことがphotogrammetryと呼ばれていることや撮影のコツを知りました。これを見る限り、フリー(for personal)でいうと3DF Zephyrが良さげかな、ということで3DF Zephyr Freeをインストール。日本の代理店のサイトもありましたが、代理店では有料版しか扱っていなかったため、元の英語サイトでインストール。
Free版では写真の枚数が50枚までに限られますが、チャレンジ!
まずは、今回の被写体である車を撮影!
先ほどのphotogrammetryのブログや他サイトに、
- 5~10°毎ぐらいには写真があったほうが良い
- 影はないほうが良い
- 画像はくっきりしていたほうが良い
とあったので、
一眼カメラの設定を、
- 車体ボディの反射具合が角度によって変わりにくいようにコントラスト低め
- クッキリするように明瞭度高め、
で撮影しました。
また、photogrammetryは複数写真間の対応点を基に3Dモデルを再構成しているようなので、撮影対象が常に同じものであるという前提だと考え、写真によってボヤけ度があったり、光の具合が大きく変わらないようにし、且つ、できるだけ設定を同じようにしました。
具体的には一眼カメラは、
- マニュアルモード
- F値大きめ(F10以上に絞る)で固定[写真ごとでできるだけ距離の違いによってボケけ度が変わらないように]
- ISO感度、シャッタースピード固定[F値と合わせて、光の強度変わらないように]
- 焦点距離固定(測定する距離も同じぐらいにした)
にしました。さらに、環境としても暗すぎない感じに車全体が影に入っており、撮影する角度によって反射が変わりにくいようにしました。
念のため50枚以上撮影し後で、選択しました。
ソフト自体はインストールすると日本語を選ぶことができます。
使い方は3Dモデル化するだけなら、とても操作は単純で、チュートリアルの動画を見れば英語がわからない人でもできると思います。
まずは、50枚選んで、低密度ポイント数で点群データ化。
周りの写真が中二病っぽくてかっこいいですね(*´ω`*)
ですが、まだ点はまばらです。
ここからさらに点群を高密度化します。
形状が分かるレベルになりました。
次に、点群データをメッシュ化。
おおぉぉぉ~~~( ゚Д゚)
本物っぽくなってきました。
さらに、テクスチャ(絵)メッシュを生成して完了。
動画だと下のような感じです。思ったより実物に近い感じになりました!
計算時間は設定に依存し、基本的には精度や精細さが高くなるような設定は時間がかかるようになってました。デフォルト設定で割とよく時間的にも精度的に良さそうですが、私はデフォルトより少し精度高い設定にしてi7-8700K CPU 6core 3.7GHz 3.7GHz, GTX1080TiのPCで低密度点群化、高密度化、メッシュ化、テクスチャメッシュ化それぞれ5~10分ぐらいかかりました。3DF Zephyr Freeは少しだけGPU使える部分あると書いてありましたが、何も考えずとりあえず回していたら今回の作業中でタスクマネージャーのパフォーマンスを眺めてたら、CPUほぼ100%、GPU10数%ぐらいの使用率になってました。
とりあえず3Dモデル化する!といったところまでだけで言えば、インストール含め3時間かからないぐらいで形になりました。詳細機能は使ってないのでわかりませんが、単純な今回行ったことだけで言えば作業は非常に簡単で、思った以上の精度が出ました。
出力としてobjファイルを出せるのもありがたいところです。
せっかく、objファイルになったので、blenderにエクスポートして高木さんと共演↓ww
思ったよりキレイになった pic.twitter.com/DcUgCJYGWd