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.

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

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