ちゃっくのメモ帳

ちゃっくがメモしときたいことをメモしとくよ

three.jsの準備

three.jsを使って何かを書こうとした時、最初に何を書けばいいか分かんなくなりそうだったからおおまかなテンプレートを残しておこうと思った。適当に入門サイトとかドットインストール見ながら作ったからかなり似てたりすると思う。

HTML

<!DOCTYPE html>
<html lang="ja">
	<head>
		<meta charset="utf-8">
		<title>three.js</title>
	</head>
	<body>
		<script src="three.min.js"></script>
		<script src="OrbitControls.js"></script>
		<script src="main.js"></script>
		<script>
		window.addEventListener('DOMContentLoaded',main,false);
		</script>
	</body>
</html>

javascript(ファイル名:main.js)

var main = function(){
	var width=600;
	var height=400;
	var fov=60;
	var aspect=width/height;
	var near=1;
	var far=1000;

	//scene
	var scene = new THREE.Scene();

	//helper
	var axis = new THREE.AxisHelper(1000);
	axis.position.set(0,0,0);
	scene.add(axis);


	//camera
	var camera=new THREE.PerspectiveCamera(fov,aspect,near,far);
	camera.position.set(300,300,300);


	//立方体
	var cg=new THREE.BoxGeometry(10,10,10);
	var cm=new THREE.MeshBasicMaterial({color:0x0000ff});
	var cent = new THREE.Mesh(cg,cm);
	scene.add(cent);


	//light
	var directionalLight = new THREE.DirectionalLight(0xffffff);
	directionalLight.position.set(0,0.7,0.7);
	scene.add(directionalLight);


	//renderer on DOM
	var renderer = new THREE.WebGLRenderer();
	renderer.setSize(width,height);
	document.body.appendChild(renderer.domElement);


	//orbitcontrol
	var controls = new THREE.OrbitControls(camera,renderer.domElement);


	function render(){
		requestAnimationFrame(render);

		/*ここに動かしたい内容を書く*/

		renderer.render(scene,camera);
		controls.update();
	}
	render();
};

こんな感じでだいたい動くはず。
まあ、それぞれのオブジェクトの作り方とかそのへんは公式ドキュメントに載ってる。
気が向いたら良さそうなのをまとめたいけど気が向くかは怪しい。