BufferGeometry.addGroup()
是 Three.js 中用于向缓冲几何体(BufferGeometry
)添加一个新的分组的方法。
BufferGeometry.addGroup(start: Integer, count: Integer, materialIndex: Integer);
start: Integer
- 分组中的第一个顶点的索引值。count: Integer
- 分组中顶点的数量。materialIndex: Integer
- 分组使用的材质索引值,默认为 0。无返回值。
BufferGeometry.addGroup()
方法将一个新的分组添加到 BufferGeometry
中。通过添加多个分组,可以为不同的几何体部分设置不同的材质,或在渲染时使用不同的着色器。
分组可以是不相交的,也可以是部分重叠的。
const geometry = new THREE.BufferGeometry();
const vertices = new Float32Array( [
-1.0, -1.0, 1.0,
1.0, -1.0, 1.0,
1.0, 1.0, 1.0,
] );
const indices = new Uint16Array( [
0, 1, 2,
] );
geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
geometry.setIndex( new THREE.BufferAttribute( indices, 1 ) );
// 添加第一个分组
geometry.addGroup( 0, 3 );
// 添加第二个分组
geometry.addGroup( 1, 2, 1 );
上述代码将创建一个包含 3 个顶点和 1 个三角面片的缓冲几何体,并添加了两个分组。第一个分组从第 0 个顶点开始,包含 3 个顶点,并使用默认的材质索引值 0。第二个分组从第 1 个顶点开始,包含 2 个顶点,并使用材质索引值 1。