01
Three.js前提须知
讲到 Three.js,就需要先说一下 OpenGL 和 WebGL。
OpenGL 是一个跨平台的3D/2D的绘图标准(规范),WebGL(Web Graphics Library)是一种3D绘图协议。
WebGL允许把JavaScript和OpenGL 结合在一起运用,但使用WebGL原生的API来写3D程序非常的复杂,同时需要相对较多的数学知识,对于前端开发者来说学习成本非常高。
WebGL
WebGL是一种Javascript的3D图形接口,把JavaScript和OpenGL ES 2.0结合在一起。
OpenGL
OpenGL是开放式图形标准,跨编程语言、跨平台,Javascript、Java 、C、C++ 、 python 等都能支持OpenGL ,OpenGL的Javascript实现就是WebGL。OpenGL ES 2.0是OpenGL的子集,针对手机、游戏主机等嵌入式设备而设计。
Canvas
Canvas是HTML5的画布元素,在使用Canvas时,需要用到Canvas的上下文,可以用2D上下文绘制二维的图像,也可以使用3D上下文绘制三维的图像,其中3D上下文就是指WebGL。
02
Three.js是什么?
官网:Javascript 3D library(JavaScript 3D 库)。
Three.js是基于webGL的封装的一个易于使用且轻量级的3D库,Three.js对WebGL提供的接口进行了非常好的封装,简化了很多细节,大大降低了学习成本,极大地提高了性能,功能也非常强大。
用户不需要详细地学习 WebGL,就能轻松创作出三维图形,是前端开发者研发3D绘图的主要工具。
微信小游戏跳一跳也是在基于Three.js研发的,Threejs现在是独领风骚。
简言之:Three.js就是能够实现3D效果的JS库
03
OpenGL、WebGL、Canvas、Three.js
四者关系
OpenGL:3D绘图标准
WebGL:OpenGL + JavaScript
Canvas:WebGL + Canvas 2D
Three.js:一个基于WebGL封装的库
类似于:
ECMAscript:脚本语言规范
JavaScript:脚本语言
jQuery: 一个基于JavaScript封装的库
简单一句话概括:WebGL和Three.js的关系,相当于JavaScript和jQuery的关系。
04
Three.js应用场景有哪些?
Web 3D游戏
3D物体模型展示
数据可视化
Web VR
其它特殊效果展示