下载安装、开发环境
下载安装:项目下载地址
https://github.com/mrdoob/three.js
目录结构:
- Build目录:包含两个文件,three.js 和three.min.js 。这是three.js最终被引用的文件。一个已经压缩,一个没有压缩的js文件。
- Docs目录:这里是three.js的帮助文档,里面是各个函数的api,可惜并没有详细的解释。试图用这些文档来学会three.js是不可能的。
- Editor目录:一个类似3D-max的简单编辑程序,它能创建一些三维物体。
- Examples目录:一些很有趣的例子demo,可惜没有文档介绍。对图像学理解不深入的同学,学习成本非常高。
- Src目录:源代码目录,里面是所有源代码。
- Test目录:一些测试代码,基本没用。
- Utils目录:存放一些脚本,python文件的工具目录。例如将3D-Max格式的模型转换为three.js特有的json模型。
- .gitignore文件:git工具的过滤规则文件,没有用。
- CONTRIBUTING.md文件:一个怎么报bug,怎么获得帮助的说明文档。
- LICENSE文件:版权信息。
- README.md文件:介绍three.js的一个文件,里面还包含了各个版本的更新内容列表。
开发系统环境 mac v10.14.2
开发工具 webstrom
后台语言 node.js
hole word
express 创建项目
1 | express --hbs odqoothree |
修改默认的hbs模版改变为html
1 | app.js |
引入three.js
1 | <script src="/javascripts/three.min.js"></script> |
官网例子
1 | <script> |
透视相机\场景\渲染器
在Three.js中,要渲染物体到网页中,我们需要3个组建:场景(scene)、相机(camera)和渲染器(renderer)。有了这三样东西,才能将物体渲染到网页中去。
记住关建语句:有了这三样东西,我们才能够使用相机将场景渲染到网页上去。
创建这三要素的代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
// 透视相机
scene = new THREE.Scene();
// 场景
renderer = new THREE.WebGLRenderer( { antialias: true } );
// 渲染器
renderer.setSize( window.innerWidth, window.innerHeight );
// 设置渲染器的大小为窗口的内宽度,也就是内容区的宽度
document.body.appendChild( renderer.domElement );
// renderer.render(scene, camera);
// 渲染函数的原型如下:
// render( scene, camera, renderTarget, forceClear )
// 各个参数的意义是:
// scene:前面定义的场景
// camera:前面定义的相机
// renderTarget:渲染的目标,默认是渲染到前面定义的render变量中
// forceClear:每次绘制之前都将画布的内容给清除,即使自动清除标志 autoClear为false,也会清除。
渲染有两种方式:实时渲染和离线渲染 。
- 离线渲染。如果不事先处理好一帧一帧的图片,那么电影播放得会很卡。CPU和GPU根本没有能力在播放的时候渲染出这种高质量的图片。
- 实时渲染:就是需要不停的对画面进行渲染,即使画面中什么也没有改变,也需要重新渲染。下面就是一个渲染循环
1
2
3
4
5
6function render() {
cube.rotation.x += 0.1;
cube.rotation.y += 0.1;
renderer.render(scene, camera);
requestAnimationFrame(render);
}
WebGL兼容性检查
1 | if (WEBGL.isWebGLAvailable()) { |