什么是three.js
1 | Three.js 是一款 webGL 框架,由于其易用性被广泛应用。 |
什么是WebGL
1 | WebGL(Web 图形库)是一种 JavaScript API,用于在任何兼容的 |
Three.js和webGL的关系
1 | WebGL 原生 API 是一种非常低级的接口,而且还需要一些数学和图形学的相关技术。 |
Three.js的基础知识
基础三大组件:
场景(scene)、相机(camera)、渲染(render)
三大组件关系:
场景是一个物体的容器,开发者把需要的物体放在场景中,相机的作用就是把场景里的物体拍下来,渲染器就是把相机拍下来的图片放在浏览器中显示。
三大组件介绍:
场景(scene)
场景就只有一种,用THREE.Scene来表示,构建一个场景的代码如下:var scene = new THREE.Scene();场景是所有物体的容器,你需要把显示的内容,放入到场景里面,才有机会被相机拍到,从而渲染到web页面上。
相机(camera)
相机决定了场景中哪个角度的景色会显示出来,就像你在屋里摆了个摄像头,照着哪里,就显示哪里。相机有两种:正投影相机(对象和相机之间的距离不会影响渲染效果,无远近之分)和透视相机(距离相机越远的地方,被渲染的越小)。
渲染器(render)
渲染器决定了渲染的结果应该画在页面的什么元素上面,并且以怎样的方式来绘制。
开发工具
Three.js 是一个 JavaScript 库,所以,我们不需要搭建复杂的开发环境,只需要有一个可以编辑 JavaScript 的编辑器和支持 Three.js 的浏览器(主要有:Google Chrome 9+、Firefox 4+、Opera 15+、Safari 5.1+、Internet Explorer 11 和 Microsoft Edge)就可以使用 Three.js 来创建 WebGL 应用。
推荐:WebStorm
我自己用的是sublime text3
案例学习
1 | <!DOCTYPE html> |
在场景当中,我们能够看到左上角会有一个性能检测的小框:
前面的数值代表当前每秒的渲染帧率,后面的括号内的值是当前的场景渲染的帧率范围。