BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

BufferGeometry.addGroup()

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。

参考