Mesh
Mesh用于创建一个网格模型,并将几何体与材质渲染在一起
网格模型Mesh其实就一个一个三角形(面)拼接构成。使用使用网格模型Mesh渲染几何体geometry,就是几何体所有顶点坐标三个为一组,构成一个三角形,多组顶点构成多个三角形,就可以用来模拟表示物体的表面。
Mesh类继承自Object3D
1.构造函数
const mesh = new THREE.Mesh(
geometry : BufferGeometry,
material : Material
)参数:
- geometry:可选,几何体对象,BufferGeometry的实例或派生类,默认值是一个新的BufferGeometry。
- material :可选,材质对象,一个Material,或是一个包含有Material的数组,默认是一个新的MeshBasicMaterial。
2.属性
共有属性请参见其基类Object3D。
geometry
类型:BufferGeometry
BufferGeometry 的实例或者派生类,定义了物体的结构。
isMesh
类型:Boolean
只读,判断一个物体是否为Mesh
material
类型:Material
由Material基类或者一个包含材质的数组派生而来的材质实例,定义了物体的外观。默认值是一个MeshBasicMaterial。
morphTargetInfluences
类型:Array
一个包含有权重(值一般在0-1范围内)的数组,指定应用了多少变形。 默认情况下是未定义的,但是会被updateMorphTargets重置为一个空数组。
morphTargetDictionary
类型:Object
基于morphTarget.name属性的morphTargets字典。 默认情况下是未定义的,但是会被updateMorphTargets重建。
3.方法
共有方法参照其基类Object3D
clone()
返回这个Mesh对象及其子级的克隆。
clone(): Mesh返回值:返回这个Mesh对象及其子级的克隆。
raycast()
在一条投射出去的Ray(射线)和这个网格之间产生交互。 Raycaster.intersectObject将会调用这个方法。
raycast(raycaster: Raycaster, intersects: Array): undefined参数:
- raycaster:这是一个
THREE.Raycaster对象,它包含了射线的起点和方向。你可以通过这个对象获取射线的相关信息,比如起点、方向等。 - intersects:这是一个数组,用于存储相交的结果。通常在这个数组中,你需要将每个相交的对象信息(例如,距离、法向量等)添加进去,以便于后续处理。
updateMorphTargets()
更新morphTargets,使其不对对象产生影响,重置morphTargetInfluences and morphTargetDictionary属性。
updateMorphTargets(): undefined4.三角形正反面
空间中一个三角形有正反两面,那么Three.js的规则是如何区分正反面的?非常简单,你的眼睛(相机)对着三角形的一个面,如果三个顶点的顺序是逆时针方向,该面视为正面,如果三个顶点的顺序是顺时针方向,该面视为反面。
- 正面:逆时针
- 反面:顺时针
