three.js(一):认识three.js并创建第一个3D应用

three.js 概述

1-three.js 是什么?

  • three.js是用JavaScript编写的WebGL第三方库;
  • three.js 提供了非常多的3D显示和编辑功能;
  • 具体而言,three.js 是一款运行在浏览器中的 3D 引擎,可以用three.js 创建各种三维场景,并对其进行编辑;
  • 在three.js 的官网上看到许多精彩的演示和文档

2-three 的优缺点

优点:
  • 对WebGL 进行了深度封装,可以提高常见项目的开发速度。
  • 入门简单,精通较难,需图形学基础。
  • 具备较好的生态环境,文档详细,持续更新,在国内的使用者很多,就业需求也很大。
缺点:
  • 在Node.js 中引用困难。在 Node.js v12 中, three.js 的核心库可使用 require(‘three’) 来作为 CommonJS module 进行导入。然而,大多数在 examples/jsm 中的示例组件并不能够这样。
  • 个别功能封装过紧,限制了其灵活性。

3-three 适合做什么

  • three.js 适合三维项目的开发和展示,比如VR、AR、三维产品展示、三维家居设计……
  • three.js 也可以做游戏开发,只是相较于Babylon,缺少了物理引擎。

创建第一个3D应用-旋转的立方体

1.建立一个HTML文件,引入three

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>立方体</title>
		<style>
			body { margin: 0; }
		</style>
	</head>
	<body>
		<script src="https://unpkg.com/three/build/three.js"></script>
		<script>
			// Our Javascript will go here.
		</script>
	</body>
</html>

2.创建一个场景

const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
const renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
  • 建立了场景、相机和渲染器,对于其中参数的意思,可以去官网查阅文档。

3.创建立方体

const geometry = new THREE.BoxGeometry();
const material = new THREE.MeshNormalMaterial();
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
camera.position.z = 5;

4.在连续渲染方法里旋转立方体

animate()
function animate() {
  requestAnimationFrame( animate );
  cube.rotation.x += 0.01;
  cube.rotation.y += 0.01;
  renderer.render( scene, camera );
};
  • 现在已经成功完成了第一个Three.js应用程序
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第二版的three.js是一个功能强大的JavaScript 3D库,可以用来搭建各种场景和模型。在这个库房项目中,我们可以利用three.js创建一个逼真的3D库房环境。 首先,我们需要创建一个房间的模型。可以使用three.js提供的几何体和材质来创建一个长方体表示房间的外形,并且给房间添加一定的纹理来增加真实感。可以使用一张适宜大小的纹理图片作为墙壁的贴图,并将其应用到房间的内部。 接下来,我们可以使用three.js中的几何体创建一些密集架来放置文件。可以用长方体来表示每一个单独的密集架,用柱状体来表示每一个单独的档案柜。通过设置它们的位置、大小和纹理,我们可以将这些几何体组合在一起来创建和摆放我们所需的128个文件。 在这个项目中,我们需要创建72个PNG文件和33个JavaScript文件。对于每个文件,可以使用three.js提供的平面、立方体或球体来表示,并根据文件的类型和属性来设置它们的颜色和纹理。更进一步,我们可以将这些文件和密集架的位置和大小联系起来,使得它们看起来像是被放置在真正的密集架中。 最后,为了增加3D库房的交互性,我们可以利用three.js提供的控制器和事件监听器来添加用户交互功能。例如,我们可以使用鼠标控制器来旋转和缩放整个场景,使用户可以自由浏览库房。或者,我们可以添加点击事件监听器,使得用户可以选择并查看单个文件的详细信息。 总而言之,借助第二版的three.js,我们可以搭建一个以3D库房为主题的项目,利用库房中的密集架和档案室来摆放128个文件。通过合理设置几何体、纹理和用户交互功能,我们可以创建一个逼真且具有实用价值的3D库房模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值