![]() Three.jsの例のスクリーンショット | |
作者 | Ricardo Cabello (Mr.doob) |
---|---|
開発元 | Three.js Authors[1] |
初版 | 2010年4月24日[2] |
最新版 |
174[3] ![]() |
リポジトリ | |
プログラミング 言語 | JavaScript |
サイズ | 409,474 KB, gzip: 98,706 KB[2] |
サポート状況 | アクティブ |
種別 | JavaScriptライブラリ |
ライセンス | MIT License[1] |
公式サイト |
threejs |
three.jsは、ウェブブラウザ上でリアルタイムレンダリングによる3次元コンピュータグラフィックスを描画する、クロスブラウザ対応の軽量なJavaScriptライブラリおよびAPIである。
HTML5のcanvas要素、Scalable Vector Graphics、WebGLとの組み合わせが可能である。ソースコードはGitHubでホストされている。
WebGLというWeb標準技術の登場により[4]、商用のブラウザ拡張機能に頼らずに、HTMLファイル内に埋め込まれたJavaScriptを介して、GPUアクセラレーションによる動的表現を描画することが可能になった[5][6]。three.jsは、WebGLのAPIを簡略化するためのラッパである。
ライブラリは単一のJavaScriptファイルであり、以下のようにHTML内でローカルやリモートコピーにリンクすることで動作する。
<script src="js/three.min.js"></script>
以下のコードはdocument.body
要素内に、画面上にカメラ、XY軸で回転する立方体、WebGL描画表示域を追加する。
<script>
var camera, scene, renderer,
geometry, material, mesh;
init();
animate();
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.z = 1000;
geometry = new THREE.BoxGeometry( 200, 200, 200 );
material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
}
function animate() {
requestAnimationFrame( animate );
render();
}
function render() {
mesh.rotation.x += 0.01;
mesh.rotation.y += 0.02;
renderer.render( scene, camera );
}
</script>