Texture

DataTexture

Создает текстуру непосредственно из исходных данных, ширины и высоты.

Конструктор

DataTexture(data : TypedArray, width : Integer, height : Integer, format : Constant, type : Constant, mapping : Constant, wrapS : Constant, wrapT : Constant, magFilter : Constant, minFilter : Constant, anisotropy : Integer, encoding : Constant)

Аргумент 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.

Пример

// создаём буфер с цветами const width = 512; const height = 512; const size = width * height; const data = new Uint8Array(4 * size); const color = new v3d.Color(0xffffff); const r = Math.floor(color.r * 255); const g = Math.floor(color.g * 255); const b = Math.floor(color.b * 255); for (let i = 0; i < size; i++) { const stride = i * 4; data[stride] = r; data[stride + 1] = g; data[stride + 2] = b; data[stride + 3] = 255; } // используем буфер для создания DataTexture const texture = new v3d.DataTexture(data, width, height); texture.needsUpdate = true;

Свойства

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

.flipY : Boolean

Если установлено значение true, текстура переворачивается вдоль вертикальной оси при загрузке на GPU. По умолчанию false.

.generateMipmaps : Boolean

Нужно ли генерировать мипмапы (если это возможно) для текстуры. По умолчанию false.

.image : Image

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

.isDataTexture : Boolean

Флаг, указывающий что данный объект является экземпляром DataTexture. Только для чтения.

.unpackAlignment : Integer

1 по умолчанию. Определяет требования к выравниванию начала каждой строки пикселей в памяти. Допустимые значения: 1 (выравнивание по байтам), 2 (строки выравниваются по четным байтам), 4 (выравнивание по словам) и 8 (строки начинаются на границах двойных слов). Смотрите glPixelStorei для получения дополнительной информации.

Методы

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

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

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