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

BufferGeometry.getAttribute(name) 方法返回一个 Float32BufferAttribute、Int8BufferAttribute 或其他 BufferAttribute,其中包含着包含着几何形状中具有给定名称的属性的所有数据。

参数

  • name (String) — 属性名称,例如 "position""normal""uv"

返回值

BufferAttribute 例: Float32BufferAttribute,其中包含着所有三角形顶点的位置信息。

示例

// 创建一个三角形网格
var geometry = new THREE.BufferGeometry();
var positions = new Float32Array([
    -1.0, -1.0, 0.0,
    1.0, -1.0, 0.0,
    0.0, 1.0, 0.0
]);
geometry.addAttribute('position', new THREE.BufferAttribute(positions, 3));

// 获取 "position" 属性,以施加某些变换
var positionAttribute = geometry.getAttribute('position');
for ( var i = 0; i < positionAttribute.count; i ++ ) {
    var x = positionAttribute.getX(i);
    var y = positionAttribute.getY(i);
    var z = positionAttribute.getZ(i);
    positionAttribute.setZ( i, z + 1 ); // 在 z 轴上平移 1
}

注意

  • 返回的 BufferAttribute 可以进行 modify/update 操作,如上述示例所示。
  • getAttribute() 方法生成一个指向 BufferAttribute 的引用,但不会在内存中创建新的对象。
  • 返回的 buffer attribute 可以是不同的子类,如 Float32BufferAttributeInt32BufferAttributeUint16BufferAttribute 等。