This creates a new THREE.GLBufferAttribute | GLBufferAttribute object.
Must be a TypedArray
. Used to instantiate the buffer.
This array should have itemSize * numVertices
elements, where numVertices is the number of vertices in the associated THREE.BufferGeometry | BufferGeometry.
the number of values of the array that should be associated with a particular vertex.
For instance, if this attribute is storing a 3-component vector (such as a position, normal, or color),
then itemSize should be 3
.
Optional
normalized: booleanApplies to integer data only.
Indicates how the underlying data in the buffer maps to the values in the GLSL code.
For instance, if array is an instance of UInt16Array
, and normalized is true,
the values 0
- +65535
in the array data will be mapped to 0.0f
- +1.0f
in the GLSL attribute.
An Int16Array
(signed) would map from -32768
- +32767
to -1.0f
- +1.0f
.
If normalized is false, the values will be converted to floats unmodified,
i.e. 32767
becomes 32767.0f
.
Default false
.
Optional name for this attribute instance.
The TypedArray holding data stored in the buffer.
The length of vectors that are being stored in the array.
Defines the intended usage pattern of the data store for optimization purposes.
Corresponds to the usage parameter of
WebGLRenderingContext.bufferData.
After the initial use of a buffer, its usage cannot be changed. Instead, instantiate a new one and set the desired usage before the next render.
THREE.StaticDrawUsage | THREE.StaticDrawUsage.
Configures the bound GPU type for use in shaders. Either FloatType or IntType, default is FloatType.
Note: this only has an effect for integer arrays and is not configurable for float arrays. For lower precision
float types, see https://threejs.org/docs/#api/en/core/bufferAttributeTypes/BufferAttributeTypes.
This can be used to only update some components of stored vectors (for example, just the component related to color).
Position at which to start update.
This can be used to only update some components of stored vectors (for example, just the component related to
color). Use the .addUpdateRange function to add ranges to this array.
Position at which to start update.
The number of components to update.
A version number, incremented every time the needsUpdate property is set to true.
Indicates how the underlying data in the buffer maps to the values in the GLSL shader code.
Readonly
countReadonly
isRead-only flag to check if a given object is of type BufferAttribute.
A callback function that is executed after the Renderer has transferred the attribute array data to the GPU.
Flag to indicate that this attribute has changed and should be re-sent to the GPU.
Set this to true when you modify the value of the array.
Setting this to true also increments the version.
Sets the value of the onUploadCallback property.
function that is executed after the Renderer has transferred the attribute array data to the GPU.
Set usage
After the initial use of a buffer, its usage cannot be changed. Instead, instantiate a new one and set the desired usage before the next render.
a copy of this BufferAttribute.
Copies another BufferAttribute to this BufferAttribute.
Copy a vector from bufferAttribute[index2] to array[index1].
Copy the array given here (which can be a normal array or TypedArray
) into array.
TypedArray.set for notes on requirements if copying a TypedArray
.
Applies matrix m to every Vector3 element of this BufferAttribute.
Applies matrix m to every Vector3 element of this BufferAttribute.
Applies normal matrix m to every Vector3 element of this BufferAttribute.
Applies matrix m to every Vector3 element of this BufferAttribute, interpreting the elements as a direction vectors.
Calls TypedArray.set( value, offset )
on the array.
Array | Array or TypedArray
from which to copy values.
Optional
offset: numberindex of the array at which to start copying. Expects a Integer
. Default 0
.
Convert this object to three.js to the data.attributes
part of JSON Geometry format v4,
This class stores data for an attribute (such as vertex positions, face indices, normals, colors, UVs, and any custom attributes )
associated with a THREE.BufferGeometry | BufferGeometry, which allows for more efficient passing of data to the GPU
Remarks
When working with vector-like data, the
.fromBufferAttribute( attribute, index )
helper methods onTHREE.Vector2.fromBufferAttribute | Vector2,
THREE.Vector3.fromBufferAttribute | Vector3,
THREE.Vector4.fromBufferAttribute | Vector4, and
THREE.Color.fromBufferAttribute | Color classes may be helpful.
See