three.js从入门到精通系列教程040 - 绘制星空背景和运动星体
·
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>three.js从入门到精通系列教程040 - 绘制星空背景和运动星体</title>
<script src="ThreeJS/three.js"></script>
<script src="ThreeJS/jquery.js"></script>
</head>
<body>
<center id="myContainer"></center>
<script type="text/javascript">
var myAspect = window.innerWidth / window.innerHeight;
var myCamera, myScene, myRenderer, mySphereMesh;
//创建渲染器
myRenderer = new THREE.WebGLRenderer({ antialias: true });
myRenderer.setSize(window.innerWidth, window.innerHeight);
myRenderer.setClearColor('black', 1.0);
$("#myContainer").append(myRenderer.domElement);
myScene = new THREE.Scene();
myCamera = new THREE.PerspectiveCamera(45, myAspect, 1, 5000);
myCamera.position.z = 2500;
//绘制绿色圆球
mySphereMesh = new THREE.Mesh(new THREE.SphereBufferGeometry(300, 16, 8),
new THREE.MeshBasicMaterial({ color: 'green', wireframe: true }));
myScene.add(mySphereMesh);
//绘制星空背景
var myGeometry = new THREE.Geometry();
for (var i = 0; i < 5000; i++) {
var myVector3 = new THREE.Vector3();
myVector3.x = THREE.Math.randFloatSpread(2000);
myVector3.y = THREE.Math.randFloatSpread(2000);
myVector3.z = THREE.Math.randFloatSpread(2000);
myGeometry.vertices.push(myVector3);
}
var myPoints = new THREE.Points(myGeometry,
new THREE.PointsMaterial({ color: 0xffffff }));
myScene.add(myPoints);
//渲染(旋转)绿色圆球
animate();
function animate() {
requestAnimationFrame(animate);
var r = Date.now() * 0.001;
mySphereMesh.position.x = 900 * Math.cos(r);
mySphereMesh.position.z = 900 * Math.sin(r);
mySphereMesh.position.y = 900 * Math.sin(r);
myRenderer.render(myScene, myCamera);
}
</script>
</body>
</html>

更多推荐
所有评论(0)