1. 程式人生 > >three.js學習筆記 Physijs物理引擎

three.js學習筆記 Physijs物理引擎

Three.js可以通過使用Physijs庫向場景中加入物理效果。這個庫是基於著名的物理引擎ammo.js。

Physiji

1.匯入庫檔案

			Physijs.scripts.worker = 'js/Physijs/physijs_worker.js';
			Physijs.scripts.ammo = 'js/Physijs/ammo.js';
兩個屬性分別指向要執行的任務執行緒和ammo.js庫。

2.建立帶有物理效果的場景

			var scene = new Physijs.Scene();
			scene.setGravity(new THREE.Vector3(0,-10,0));
使用setGravity()函式設定重力大小為y軸負方向,大小為10。

3.將原來場景的物件用Physiji庫包裝起來

原場景:

			var geometry = new THREE.CubeGeometry(100, 100, 100);
			var material = new THREE.MeshBasicMaterial({});
			var mesh = new THREE.Mesh(geometry,material);

物理場景:

			var geometry = new THREE.CubeGeometry(100, 100, 100);
			var material = new Physijs.createMaterial(new THREE.MeshPhongMaterial({
					restitution:0.5,
					friction:0.5
				}))
			var mesh = new Physijs.BoxMesh(geometry,material,1);
  物理場景材質增添了restitution(彈性形變)和friction(摩擦係數)兩個引數。

  物理場景建立的物件增添了第三個引數   1:可以正常運動   0:困定(類似於牆體)   預設值:1

  物理場景還對基本的網格物件進行了覆蓋詳見Physijs API
4.渲染物理場景

			function render(){
				requestAnimationFrame(render);
				renderer.render(scene, camera);
				scene.simulate();
			}


fork me on github blog:https://chenjy1225.github.io/