初学three.js 入门

<script src="http://threejs.org/build/three.js"></script>

<script>
	// 建立场景
	var scene=new THREE.Scene();
	// 建立相机  透视相机          
							// 视野:在显示器上看待的场景的范围
							// 宽高比:
							// 3/4 近和远裁剪平面   远离相机或距离很近的物体不会被渲染
	var camera=new THREE.PerspectiveCamera(35,window.innerWidth/window.innerHeight,0.1,1000);
	// 建立渲染器
	var renderer=new THREE.WebGLRenderer();
	renderer.setSize(window.innerWidth/2,window.innerHeight/2);
	// 渲染器显示场景
	document.body.appendChild(renderer.domElement);
	// 添加几何
	var geometry=new THREE.BoxGeometry(1,1,1);
	// 上色
	var material=new THREE.MeshBasicMaterial({color:0xff0000});
	// 网格对象 需要一个几何体并上色
	var cube=new THREE.Mesh(geometry,material);


	// 插入场景中 默认添加到的位置是(0,0,0),此时相机和立方体在彼此内部
	scene.add(cube);
	// 为避免上述情况,将相机移出一点点
	camera.position.z=3;




	// 渲染  不进行渲染或者动画循环我们将无法看到任何内容
	function animate(){
		requestAnimationFrame(animate);
		cube.rotation.x+=0.01;
		cube.rotation.y+=0.01;
		renderer.render(scene,camera);
	}
	animate();
</script>

<!-- 疑惑点解惑start -->
<!-- 如果使用three.js显示任何东西,我们需场景(scene)、相机(camera)、渲染器(renderer);
相机渲染场景 -->
<!-- 渲染其实就是建立了一个循环,每次刷新屏幕时渲染器都绘制场景。
1.为什么循环不使用定时器?
requestAnimationFrame优点:若用户点击去了别的选项卡,他会暂停不会浪费处理能力。
 -->

<!-- 疑惑点解惑end -->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值