- WebGLとThree.jsの概要
- Three.jsを使ってみよう
- 関連ツール
Welcome!
// シーンの初期化 var scene = new THREE.Scene(); var renderer = new THREE.WebGLRenderer(); renderer.setSize(500, 500); renderer.setClearColor(0x000000, 1); document.body.appendChild(renderer.domElement); // カメラの作成 var camera = new THREE.PerspectiveCamera( 30, 500 / 500, 0.1, 1000 ); camera.position.set(0, 0, 6); camera.lookAt(new THREE.Vector3(0, 0, 0)); scene.add(camera); // ライトの作成 var light = new THREE.DirectionalLight(0xffffff); light.position.set(0.577, 0.577, 0.577); scene.add(light); var ambient = new THREE.AmbientLight(0x333333); scene.add(ambient);
// モデルの作成 var geometry = new THREE.SphereGeometry(1, 16, 8); var material = new THREE.MeshLambertMaterial( { color: 0xffffff , ambient: 0xffffff }); var mesh = new THREE.Mesh(geometry, material); scene.add(mesh); // レンダリング function render() { requestAnimationFrame(render); renderer.render(scene, camera); }; render();
<script src="three.min.js"></script> <script> var scene = new THREE.Scene(); var renderer = new THREE.WebGLRenderer(); renderer.setSize(500, 500); renderer.setClearColor(0x000000, 1); document.body.appendChild(renderer.domElement); // これ以降のコード... </script>
var camera = new THREE.PerspectiveCamera(15, 500 / 500, 0.1, 1000 ); camera.position.set(0, 0, 8); camera.lookAt(new THREE.Vector3(0, 0, 0)); scene.add(camera);
var light = new THREE.DirectionalLight(0xffffff); light.position.set(0.577, 0.577, 0.577); scene.add(light); var ambient = new THREE.AmbientLight(0x333333); scene.add(ambient);
var geometry = new THREE.SphereGeometry(1, 32, 16); var material = new THREE.MeshPhongMaterial( { color: 0xffffff , ambient: 0xffffff }); var mesh = new THREE.Mesh(geometry, material); scene.add(mesh);
function render() { requestAnimationFrame(render); renderer.render(scene, camera); }; render();
var material = new THREE.MeshPhongMaterial( { color: 0xffffff , ambient: 0xffffff, map: THREE.ImageUtils.loadTexture('earth.jpg') });
function render() { requestAnimationFrame(render); mesh.rotation.y = +new Date * 0.0003; renderer.render(scene, camera); }; render();
var texture = THREE.ImageUtils.loadTexture('earth.jpg'); var material = new THREE.MeshPhongMaterial( { color: 0xffffff , ambient: 0xffffff, specular: 0xcccccc, shininess:50, map: texture, bumpMap:texture, bumpScale: 0.05 });
// キューブマップの6面のURLを配列に格納 var urls = [1, 2, 3, 4, 5, 6].map(function(n) { return n + '.jpg'; }); // マテリアルを作成 var material = new THREE.MeshPhongMaterial( { color: 0xffffff , ambient: 0xffffff, specular: 0xcccccc, shininess:50, bumpMap: THREE.ImageUtils.loadTexture('lib/earth.jpg'), bumpScale: 0.01, envMap: THREE.ImageUtils.loadTextureCube(urls), reflectivity: 1.0 });