DataArrayTexture - Verge3D User Manual - Soft8Soft
Description: Learn how to use DataArrayTexture in your interactive 3D apps made with Verge3D

Texture →

# DataArrayTexture

Creates an array of textures directly from raw data, width and height and depth. This type of texture can only be used with a WebGL 2 rendering context.

## Constructor

### DataArrayTexture(data : TypedArray, width : Integer, height : Integer, depth : Integer)

The data argument must be a TypedArray. The properties inherited from Texture are the default, except `magFilter` and `minFilter` default to `v3d.NearestFilter`. The properties `flipY` and `generateMipmaps` are initially set to `false`.

The interpretation of the data depends on type and format: if the type is `v3d.UnsignedByteType`, a Uint8Array will be useful for addressing the texel data. If the format is `v3d.RGBAFormat`, data needs four values for one texel: Red, Green, Blue and Alpha (typically the opacity).

For the packed types, `v3d.UnsignedShort4444Type` and `v3d.UnsignedShort5551Type` all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.

In order to use the types `v3d.FloatType` and `v3d.HalfFloatType`, the WebGL implementation must support the respective extensions OES_texture_float and OES_texture_half_float. In order to use `v3d.LinearFilter` for component-wise, bilinear interpolation of the texels based on these types, the WebGL extensions OES_texture_float_linear or OES_texture_half_float_linear must also be present.

## Code Example

This creates a DataArrayTexture where each texture has a different color.

`// create a buffer with color data const width = 512; const height = 512; const depth = 100; const size = width * height; const data = new Uint8Array(4 * size * depth); for (let i = 0; i < depth; i++) { const color = new v3d.Color(Math.random(), Math.random(), Math.random()); const r = Math.floor(color.r * 255); const g = Math.floor(color.g * 255); const b = Math.floor(color.b * 255); for (let j = 0; j < size; j ++) { const stride = (i * size + j) * 4; data[stride] = r; data[stride + 1] = g; data[stride + 2] = b; data[stride + 3] = 255; } } // used the buffer to create a DataArrayTexture const texture = new v3d.DataArrayTexture(data, width, height, depth); texture.needsUpdate = true;`

## Properties

See the base Texture class for common properties.

### # .image : Image

Overridden with an object holding data, width and height and depth.

## Methods

See the base Texture class for common methods.

## Source

For more info on how to obtain the source code of this module see this page.