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.deleteAttribute()

该方法用于从 BufferGeometry 对象中删除一个已有的属性(attribute)。

语法

bufferGeometry.deleteAttribute(attributeName);

参数

  • attributeName:要删除的属性的名称。

描述

在3D场景中,BufferGeometry 用来保存每个顶点的数据,如位置、颜色、法向量等。其中这些数据保存在属性(attribute)中。

deleteAttribute() 方法可用于删除一个已有的属性。这个方法在需要动态修改 BufferGeometry 的属性时非常有用。

示例

下面的示例演示了如何删除 BufferGeometry 中名为 uv 的属性:

const geometry = new THREE.BufferGeometry();

// 添加顶点属性 "position" 和 "uv"
const positions = new Float32Array([...]);
const uvs = new Float32Array([...]);
geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
geometry.setAttribute('uv', new THREE.BufferAttribute(uvs, 2));

// 删除 "uv" 属性
geometry.deleteAttribute('uv');

注意事项

  • 只有在新属性的内存使用量比旧属性的内存使用量小的情况下,才应该删除旧属性。因为删除属性时,BufferGeometry 对象会重新分配内存,导致性能开销。