DataArrayTexture - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать DataArrayTexture в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

Texture →

# DataArrayTexture

Создаёт массив текстур на основе сырых данных, ширины, высоты и глубины. Может использоваться только с контекстом рендеринга WebGL 2.

## Конструктор

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

Аргумент `data` должен быть типа TypedArray. Свойства, унаследованные от Texture используются по умолчанию, кроме `magFilter` и `minFilter`, значения которых равны `v3d.NearestFilter`. Свойства `flipY` и `generateMipmaps` первоначально установлены в `false`.

Интерпретация данных зависит от типа и формата текстуры: для типа `v3d.UnsignedByteType`, будут использоваться данные Uint8Array. Если используется формат `v3d.RGBAFormat`, в данных должны располагаться 4 значения для одного текселя: для красного, зелёного, синего и альфа-канала (прозрачности).

Для упакованных типов `v3d.UnsignedShort4444Type` и `v3d.UnsignedShort5551Type` цветовые компоненты текселя адресуются как битовые поля целых элементов массива Uint16Array.

Для использования типов `v3d.FloatType` и `v3d.HalfFloatType`, WebGL реализация должна поддерживать расширения OES_texture_float и OES_texture_half_float. Для использования фильтра билинейной интерполяции текселей `v3d.LinearFilter` вам также потребуется иметь поддержку WebGL-расширений OES_texture_float_linear и OES_texture_half_float_linear.

## Пример

Создаёт DataArrayTexture, в котором каждой текстуре соответствует свой цвет.

`// создаём буфер с цветовыми данными 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; } } // используем буфер для создания DataArrayTexture const texture = new v3d.DataArrayTexture(data, width, height, depth); texture.needsUpdate = true;`

## Свойства

Смотрите общие свойства в базовом классе Texture.

### # .image : Image

Свойство базового класса переопределяется объектом, содержащим данные для текстуры, её высоту, ширину и глубину.

## Методы

Смотрите общие методы в базовом классе Texture.

## Исходный файл

О том как получить исходный код этого модуля читайте тут.