SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

Kinectを利用した簡単3Dモデル作成と3Dモデル活用法

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第4回


  • X ポスト
  • このエントリーをはてなブックマークに追加

データの修正/変換

 「Kinect Fusion Explorer-WPF」で作成した3Dモデルは、背景など不要なポリゴンも含まれているため、そのままでは「椅子」の3Dモデルとしては使えません。また3DゲームやARのために、スマートデバイスやWebブラウザから扱うにはサイズが大きすぎることも問題になりそうです。そのため、作成した3Dモデルに対して以下のような修正をしました。

  • 不要な部分の削除
  • データサイズの縮小
  • 中心座標の設定
  • Three.js用のデータフォーマットに変換

 今回は、3Dモデルの修正/変換には、以下のツールを使用しています。

  • Meshlab:3Dモデルの合成や不要な部分の削除、ポリゴンリダクションのために使用
  • Blender:中心座標の設定やThree.js用のデータ変換のために使用

 それでは順番にデータの修正方法を見ていきましょう。

不要な部分の削除

 Kinect Fusionで作成した3Dモデルをみると、不要な背景などが写り込んでしまっています。また、データのサイズを確認したところ、174Mbyteありました。Webブラウザで表示することを考えるとさすがに大きすぎますね。

 まずは、3Dモデルに写り込んでしまっている不要なポリゴンを、Meshlabを使って削除しましょう。

 削除したい箇所を選択し、「削除」アイコンを押下します。

 この作業を繰り返すことで、不要なポリゴンを削除できます。

 以下の図のように、不要なポリゴンをすべて削除してください。

 ここで一度サイズを確認してみましょう。編集したデータをエクスポートします。今回は、色情報や法線の情報は不要なためエクスポート対象から外しました。サイズを確認した結果は、35.9Mbyteでした。まだ大きいですね。

データサイズの縮小

 不要なポリゴンを削除しただけでは、サイズを減らしきれませんでした。引き続きMeshLabを利用して点(Vertex)や面(Face)をFilter機能を使用し、サイズを縮小していきます。

不要な点や面の除去

 「Filters」→「Cleaning and Repairing」配下にある「Remove Duplicate Face」、「Remove Duplicate Vertex」、「Remove Unreferenced Vertex」などを実行します。

 今回のデータでは、「Remove Duplicate Vertex」を実行すると、Vertexの数が「938,181」から「159,918」になりました。この時点でのデータサイズは11.4Mbyteになっています。まだかなり大きいですね。

ポリゴンリダクション

 最後に面を減らします。

 「Filters」→「Remeshing,Simplification and Reconstruction」→「Quadric Edge Collapse Decimation」を選択します。

 Target number of facesを設定し、「Apply」ボタンを押下します。今回は1/10になるように値を設定しました(Faceの数 312667→31265)。

 また、「Quality threshold」を「1」にしています。初期設定の「0.3」では穴だらけになってしまいました。

 サイズを確認したところ1.07MByteになっています。まだファイルサイズは大きいですが、なんとか実用に耐えるサイズまで縮小することができました。

次のページ
データの回転

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

藤田 泰生(TIS株式会社)(フジタ ヤスオ)

TIS株式会社 コーポレート本部 戦略技術センター所属。入社から全文検索やCMS等検索技術やフロントエンド側の業務に従事。現在はHTML5やJavaScriptに関する技術動向の調査を行っている。 また、KinectなどのデバイスやIOTに必要な技術であるセンサーに関する検証も実施している。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7183 2013/07/17 16:23

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング