threejs怎么把点连成面

JavaScript08

threejs怎么把点连成面,第1张

threejs怎么把点连成面可以用模型的方法。

1、在ThreeJs中:模型由几何体和材质构成和模型以何种形式(点、线、面)展示取决于渲染方式,所有的三位物体都是由点构成,两点构成线,三点构成面,在three.js中利用THREE.Vector3()是用来缺点点的位置的,它的三个参数分别是对应于三维坐标的x轴,y轴和z轴。MeshBasicMaterial:用于以简单的阴影(平面或线框)方式绘制几何的材料。MeshDepthMaterial:用于通过深度绘制几何的材料。深度是基于相机附近和远处的平面。白色最近,黑色最远。MeshLambertMaterial:无光泽表面材质,无镜面高光。MeshNormalMaterial:将法线矢量映射为RGB颜色的材质。MeshPhongMaterial:光泽表面材质,镜面高光,反射。MeshStandardMaterial:使用金属粗糙度工作流程的标准物理基础材料。

我们知道,两点确定一条直线,三点可以确定一个平面,也就是三角形面。

我们所看到的网格模型,实际上都是根据顶点坐标,绘制成一个个三角形面,然后拼接而成的。

那么如何自己实现一个面呢?

这样就实现了一个三角形。那如何实现一个完整的矩形呢?

三个点只能决定一个三角形,如果要画一个矩形,那就要再画一个三角形。

而我们给的顶点一共是4个,那前面4个画完了一个三角形,后面一个顶点找不到另外两个点,肯定是画不出来了。

一种办法是再给出两个顶点,但这样就太啰嗦了。我们可以指定一下顶点的索引位置。

我们把图形的顶点做个索引编号,其中0,1,2顶点可以确定一个三角形面,而2,3,0可以再确定一个三角形面,二者合起来就是一个完整的矩形了。

我们打印一下BoxGeometry信息。

其实faces放的就是索引信息,vertices放的是顶点,threejs已经给我们封装好了。这样我们可以按图索骥,自己实现一个正方体了。

.side 有三种, FrontSide (正面) 、 BackSide (反面)、 DoubleSide (双面).

上面设置完之后,发现模型上出现条纹阴影,如图:

2: 将上面的 THREE.DoubleSide 去掉,但是我们想要的效果就没了。

3: 设置物体的投影面背面:

附上文档截图: