之所以用这个题目是觉得threejs无论学了多久永远都是学了忘,忘了再学,在项目中没有实践永远都是隔岸观火,没办法深入进去,这次再挣扎一下,做个学习笔记吧,希望能加深些印象。 本系列笔记是跟随Bruno Simons大佬边学习边做的笔记
入门开始,先来些枯燥的原理做开胃菜吧😈
说起threejs,是web领域最负盛名的3d引擎框架,和其他的如babylon.js不同,他们主打的是做游戏,因此有非常丰富的游戏常用接口,而threejs则更加底层,实现的是帮助我们打通和webGL连接的通道,毕竟webgl实在太难搞了,写一个小三角行都要好几十行代码。 threejs实际上就是封装好了接口,让我们可以直接调用接口实现画图。 提到webgl就不得不说到最新的webgpu概念了,据业界大佬传闻webgpu标准很快就会确定了,那时我们web3d很可能也有大展拳脚的机会了,哈哈哈哈哈…..
话不多说,回归正题。
在threejs中,创建一个3d的场景需要以下几大要素:
- Scene, 即场景,物体相机等需要放置在场景中
- Objects, 即物体, 物体通常包含geometry(几何体), material(材质)两部分,共同组成mesh(模型)
- Camera, 即相机
- Renderer, 渲染器,将整个场景渲染到canvas画布上
除此之外还有一些非必要的元素,control — 控制器, light — 光源 等等可以给场景添加额外的功能