Three.js は、WebGL を簡単に扱うための JavaScriptライブラリ です。これを使うことで、ブラウザ上で3Dグラフィックスを描画することができます。
WebGLについては、こちらで説明しています。
Ai0w.com
WebGLとは?JavaScript と OpenGL ES 2.0 を基盤とし、ブラウザ内で動作するため、プラグインなし でリアル…
WebGL(Web Graphics Library) は、ウェブブラウザ上で ハードウェアアクセラレーション を活用しながら 3Dグラフィックス を描画するためのAPI(Application Programming…
目次
Three.jsの特徴
- WebGL(Web Graphics Library)を簡単に扱える
- WebGL はブラウザで3Dグラフィックスを描画するためのAPIですが、低レベルのコードを書く必要があり、初心者には扱いが難しいです。
- Three.js はその複雑さを抽象化し、シンプルな記述で3Dシーンを作成できます。
- 軽量で高性能
- Three.js は軽量なライブラリで、パフォーマンスが高い3D描画が可能です。
- 豊富な機能
- カメラ制御(オービットコントロールなど)
- ライティング(影や反射の表現)
- マテリアルとシェーダー(テクスチャやカスタムシェーダー)
- 物理演算(Ammo.jsなどと連携可能)
- モデルのインポート(GLTF、OBJ、FBXなど)
- ブラウザで動作
- Webブラウザだけで3Dコンテンツを表示できるため、インストール不要。
- オープンソース
- GitHub で公開されており、コミュニティが活発。
- 公式リポジトリ:Three.js GitHub
ライセンス:MITライセンス
https://github.com/mrdoob/three.js
Three.jsの基本的な使い方
Three.js でシンプルな3Dシーンを作成する流れは以下のようになります。
- シーン(Scene)を作成
- カメラ(Camera)を作成
- レンダラー(Renderer)を作成
- オブジェクト(Mesh)を追加
- アニメーションループを作成
- レンダリング(描画)
サンプルコード
<canvas id="canvas"></canvas>
<script>
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
// 頂点シェーダー
const vertexShaderSource = `
attribute vec4 position;
void main() {
gl_Position = position;
}
`;
const vertexShader = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(vertexShader, vertexShaderSource);
gl.compileShader(vertexShader);
// フラグメントシェーダー
const fragmentShaderSource = `
void main() {
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); // 赤色
}
`;
const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(fragmentShader, fragmentShaderSource);
gl.compileShader(fragmentShader);
// シェーダープログラムの作成
const program = gl.createProgram();
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
gl.useProgram(program);
// 三角形の頂点データ
const vertices = new Float32Array([
0.0, 0.5, // 上
-0.5, -0.5, // 左下
0.5, -0.5 // 右下
]);
const buffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);
const position = gl.getAttribLocation(program, "position");
gl.vertexAttribPointer(position, 2, gl.FLOAT, false, 0, 0);
gl.enableVertexAttribArray(position);
// 描画
gl.clearColor(0.0, 0.0, 0.0, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT);
gl.drawArrays(gl.TRIANGLES, 0, 3);
</script>実行結果:

Three.jsを活用できる場面
- 3Dウェブサイト
- WebGLゲーム
- データビジュアライゼーション
- VR/ARコンテンツ
- シミュレーションツール
公式リソース
- Three.js
https://threejs.org/ - Three.js Docs
https://threejs.org/docs/ - Three.js Examples
https://threejs.org/examples/
Three.js を使うと、ブラウザ上で手軽に3Dコンテンツを作成できるので、Webベースの3Dアプリ開発に興味がある方におすすめのライブラリです。
コメント