SHOEISHA iD

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

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

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

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

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


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

3DモデルをWebブラウザで表示する

 最後に、3DモデルをWebブラウザで表示します。今回はThree.jsを使いました。

Three.js

 Three.jsはWebGLを扱えるJavaScriptライブラリです。今回はバージョン「r58」を使用しました。

 Three.jsは現在でも頻繁に更新されており、少し前のバージョンで動いていたものが動かなくなってしまうこともよくあります。そのため、Three.jsを調査する際には本家サイトのデモやドキュメントなどを確認しながら作成するのが良いと思います。

 筆者も今回はサンプルコードを参考にしながら、デモを作成しました。

  • 参考にしたサンプルコード
    • canvas_geometry_cube.html(物体の回転)
    • webgl_lights_hemisphere.html(モデルの読み込み)

デモ

 完成したものは以下のようになります。Google Chrome(version 26.0.1410.64 m)とFirefox(version 21.0)で動作確認しています。

プログラムの説明

 今回のデモは、Three.jsのexamplesフォルダ配下にある、「canvas_geometry_cube.html」を以下の箇所について修正したものになります。

ライトを当てる
  // define light params
  var light = new THREE.DirectionalLight( 0xffffff, 2 );
  light.position.set( 1, 1, 1 ).normalize();
  scene.add( light );
    
  var ambientLight = new THREE.AmbientLight( 0x111111 );
  scene.add( ambientLight );
モデルの読み込み
// load model
var loader = new THREE.JSONLoader();
loader.load( 'model.js', function ( geometry ) {
  model = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial({color: 0x000088, side:THREE.DoubleSide}) );
        
  scene.add( model );
  animate();
} );
レンダラーを「CanvasRenderer」から「WebGLRenderer」に変更
//renderer = new THREE.CanvasRenderer();
renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
マウスホイールイベントを取得して処理を実行する
function onDocumentWheel( event ) {
  var delta = event.wheelDelta || event.detail;
  camera.position.z += delta > 0 ? 0.3 : -0.3;
  if(camera.position.z < 1){ camera.position.z = 1;} // min check
  if(camera.position.z > 10){ camera.position.z = 10;} // max check
}

 これらの変更を加えることで、Kinectで3Dモデルを読み込みWebブラウザで表示/回転させることができます。詳細はデモのソースをご参照ください。

次のページ
KScan3D,Artecとの比較

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング