HTML5で3D表現を行うために「three.js」を使ってみる



HTML5で3D表現をしたい!でもcanvasで実現させるのは困難って時に「three.js」を使用してみましょう。

three.jsって?

JavascriptでWebGLをサポートした3D描画ライブラリです。
WebGL非サポート環境用にCanvasやSVGでの描画も可能で、WebGLまたはWebでの3D表現に使用できるライブラリです。

tree.jsの取得

tree.jsは本家の左上のdownloadのリンクからダウンロードすることが出来ます。
three.js – Javascript 3D library

ダウンロードしたファイルを解凍した直下に「build」フォルダがあるので、その直下にthree.jsのファイルがあります。
docsの中は英語ですがマニュアルも入っているので使い方の確認も出来ます。

サンプル

three.jsのサンプルです。
マニュアルに作り方が載っています。

サンプルソース
マニュアルのままです。
サンプル用のソースは別途自分が取得してきたtree.jsにリンクさせてください。
HTML形式でローカルで保存してください。
<html>
  <head>
    <title>My first Three.js app</title>
    <style>
      body { margin: 0; }
      canvas { width: 100%; height: 100% }
    </style>
  </head>
  <body>
    <script src="js/three.min.js"></script>
    <script>
      var scene = new THREE.Scene();

      var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );

      var renderer = new THREE.WebGLRenderer();
      renderer.setSize( window.innerWidth, window.innerHeight );
      document.body.appendChild( renderer.domElement );

      var geometry = new THREE.BoxGeometry( 1, 1, 1 );
      var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
      var cube = new THREE.Mesh( geometry, material );
      scene.add( cube );

      camera.position.z = 5;

      var render = function () {
        requestAnimationFrame( render );

        cube.rotation.x += 0.1;
        cube.rotation.y += 0.1;

        renderer.render(scene, camera);
      };

      render();
    </script>
  </body>
</html>

自作したthree.jsのサンプル
こちらはサンプルに色々加えてコメントアウトを追加したものなのでこちらのほうがわかりやすいかもしれません。
光源も加えて徐々にカメラが遠ざかるようにしました。

今回は紹介まで。下記はオンラインマニュアルになるのでこちらを読んでみるのがいいのかも知れません。
three.js オンラインマニュアル


コメントを残す