一、three.ts-基本要素-网格详解
在计算机的世界里,一条弧线是由有限个点构成的有限条线段连接得到的。当线段数量越多,长度就越短,当达到你无法察觉这是线段时,一条平滑的弧线就出现了。 计算机的三维模型也是类似的。只不过线段变成了平面,普遍用三角形组成的网格来描述。 我们把这种模型称之为 Mesh 模型。
1. 网格
- 一条弧线由多条线段得到,线段的数量越多,越接近弧线。
- three.ts 背后所有的图形在进行渲染之前, 都会进行三角化, 然后交给webgl 去渲染。
- three.js提供了一些常见的几何形状,有三维的也有二维的,三维的比如长方体、球体等, 二维的比如长方形圆形等,如果默认提供的形状不能满足需求,也可以自定义通过定义顶点和顶点之间的连线绘制自定义几何形状, 更复杂的模型还可以用建模软件建模后导入。
2D
- PlaneGeometry
- CircleGeometry
- RingGeometry
- ShapeGeometry
3D
- BoxGeometry
- SphereGeometry
- CylinderGeometry
- 有了形状,可能渲染出来的图形没有美丽的样子,这时候材质就出来了。
2. 材质
组成的 mesh 其实是有两个部分:
- 材质(Material)
- 几何体(Geometry)
three.js提供了集中比较有代表性的材质,常用的用漫反射、镜面反射两种材质,还可以引入外部图片,贴到物体表面,成为纹理贴图。