<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>three.js从入门到精通系列教程049 - 加载房屋模型,可旋转可缩放</title>
<script src="ThreeJS/three.js"></script>
<script src="ThreeJS/jquery.js"></script>
<script src="ThreeJS/LegacyJSONLoader.js"></script>
<script src="ThreeJS/OrbitControls.js"></script>
</head>
<body>
<p><button id="myButton1">加载房子模型</button>
<button id="myButton2">移除房子模型</button>
</p>
<center id="myContainer"></center>
<script>
//创建渲染器
var myRenderer = new THREE.WebGLRenderer({ antialias: true });
myRenderer.setSize(window.innerWidth, window.innerHeight);
myRenderer.setPixelRatio(window.devicePixelRatio);
myRenderer.setClearColor('white', 1);
$("#myContainer").append(myRenderer.domElement);
var myScene = new THREE.Scene();
var myCamera = new THREE.PerspectiveCamera(45,
window.innerWidth / window.innerHeight, 0.1, 5000);
myCamera.position.set(-20, 40, 50);
var mySpotLight = new THREE.SpotLight(0xffffff);
mySpotLight.position.set(0, 200, 300);
myScene.add(mySpotLight);
myScene.add(new THREE.AmbientLight(0xffffff, 0.2));
//渲染在场景中的房子模型
animate();
function animate() {
myRenderer.render(myScene, myCamera);
requestAnimationFrame(animate);
}
//响应单击“加载房子模型”按钮
$("#myButton1").click(function () {
var myLegacyJSONLoader = new LegacyJSONLoader();
//加载房子模型
myLegacyJSONLoader.load('Data/MyHouse.json', function (geo, material) {
//根据该模型的几何体和材质初始化Mesh
var myHouse = new THREE.Mesh(geo, material);
myHouse.position.set(0, -6, 15);
myHouse.name = 'myHouse';
myScene.add(myHouse);
});
});
//响应单击“移除房子模型”按钮
$("#myButton2").click(function () {
myScene.remove(myScene.getObjectByName('myHouse'));
});
//创建轨道控制器
var myOrbitControls = new THREE.OrbitControls(myCamera);
</script>
</body>
</html>
