网格(Mesh)

表示基于以三角形为polygon mesh(多边形网格)的物体的类。 同时也作为其他类的基类,例如SkinnedMesh

代码示例

const geometry =new THREE.BoxGeometry(1,1,1);
const material =new THREE.MeshBasicMaterial({ color:0xffff00});
const mesh =new THREE.Mesh( geometry, material );
scene
.add( mesh );

构造器

Mesh( geometry : BufferGeometry, material : Material )

geometry —— (可选)BufferGeometry的实例,默认值是一个新的BufferGeometry
material —— (可选)一个Material,或是一个包含有Material的数组,默认是一个新的MeshBasicMaterial

属性

共有属性请参见其基类Object3D

geometry : BufferGeometry

BufferGeometry 的实例或者派生类,定义了物体的结构。

isMesh : Boolean

Read-only flag to check if a given object is of type Mesh.

material : Material

Material基类或者一个包含材质的数组派生而来的材质实例,定义了物体的外观。默认值是一个MeshBasicMaterial

morphTargetInfluences : Array

一个包含有权重(值一般在0-1范围内)的数组,指定应用了多少变形。 默认情况下是未定义的,但是会被updateMorphTargets重置为一个空数组。

morphTargetDictionary : Object

基于morphTarget.name属性的morphTargets字典。 默认情况下是未定义的,但是会被updateMorphTargets重建。

方法

共有方法请参见其基类Object3D

clone () : Mesh

返回这个Mesh对象及其子级的克隆。

raycast ( raycaster : Raycaster, intersects : Array ) : undefined

在一条投射出去的Ray(射线)和这个网格之间产生交互。 Raycaster.intersectObject将会调用这个方法。

updateMorphTargets () : undefined

更新morphTargets,使其不对对象产生影响,重置morphTargetInfluences and morphTargetDictionary属性。

API:https://www.three3d.cn/docs/index.html#api/zh/objects/Mesh

// 添加物体
// 创建几何体
const cubeGeometry = new THREE.BoxGeometry(1, 1, 1);
//  创建材质
const cubeMaterial = new THREE.MeshBasicMaterial({ color: 0xffff00 });
const parentMaterial = new THREE.MeshBasicMaterial({ color: 0xff0000 });
// 根据几何体和材质创建物体

// 创建网格
let parentCube = new THREE.Mesh(cubeGeometry, parentMaterial);
const cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
// 设置父子元素
parentCube.add(cube)
// 设置物体的位置
parentCube.position.set(-2,0,0)
cube.position.set(2,0,0)
// 将几何体添加到场景中
scene.add(parentCube);
C#