Texture

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

После первого использования текстуры, её размеры, формат и тип не могут быть изменены. Вместо этого вызовите .dispose() на старой текстуре и создайте новую.

Пример

// загружаем текстуру, устанавливаем повторяющийся режим развёртки const texture = new v3d.TextureLoader().load('mytexture.jpg'); texture.wrapS = v3d.RepeatWrapping; texture.wrapT = v3d.RepeatWrapping; texture.repeat.set(4, 4);

Конструктор

Texture(image : Image, mapping : Constant, wrapS : Constant, wrapT : Constant, magFilter : Constant, minFilter : Constant, format : Constant, type : Constant, anisotropy : Integer, encoding : Constant)

Смотрите описание свойств ниже за разъяснением значений параметров, передаваемых в конструктор.

Свойства

.id : Integer

Уникальный номер данного экземпляра текстуры. Только для чтения.

.isTexture : Boolean

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

.uuid : String

UUID данного экземпляра объекта. Он присваивается автоматически и не подлежит редактированию.

.name : String

Необязательное и необязательно уникальное имя текстуры. По умолчанию используется пустая строка.

.image : Image

Объект изображения, обычно создаваемый с помощью метода TextureLoader.load. Это может быть любое изображение (например, PNG, JPG, WEBP, KTX2) или видео (например, MP4, WEBM), поддерживаемое «Вердж3Д».

Чтобы использовать видео в качестве текстуры, необходимо иметь воспроизводящий HTML5 видеоэлемент в качестве источника изображения текстуры и постоянно обновлять эту текстуру пока видео воспроизводится — класс VideoTexture обрабатывает это автоматически.

.mipmaps : Array

Массив заданных пользователем мипмапов (необ.).

.mapping : Constant

Как изображение применяется к объекту. По умолчанию используется тип v3d.UVMapping, где для наложения карты используются координаты U,V.

Другие типы отображения см. на странице текстурные константы.

.wrapS : Constant

Определяет, как текстура будет развёрнута по горизонтали. Соответствует координате U текстурной развёртки.

По умолчанию используется v3d.ClampToEdgeWrapping, где тексели ограничиваются текселями внешнего края. Два других варианта — v3d.RepeatWrapping и v3d.MirroredRepeatWrapping.

Подробности см. на странице текстурные константы.

.wrapT : Constant

Определяет, как текстура будет развёрнута по вертикали. Соответствует координате V текстурной развёртки. Доступны те же варианты, что и для .wrapS.

Примечание: тайлинг изображений в текстурах работает только в том случае, если размеры изображения равны степени двойки (2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, ...) в терминах пикселей. Отдельные размеры не обязательно должны быть равны, но каждый из них должен быть равен степени двойки. Это ограничение WebGL, а не «Вердж3Д».

.magFilter : Constant

Способ дискретизации текстуры, когда тексель занимает более одного пикселя. По умолчанию используется v3d.LinearFilter, который берет четыре ближайших текселя и билинейно интерполирует между ними. Другой вариант - v3d.NearestFilter, который использует значение ближайшего текселя.

Подробности см. на странице текстурные константы.

.minFilter : Constant

Способ дискретизации текстуры, когда тексель занимает менее одного пикселя. По умолчанию v3d.LinearMipmapLinearFilter, который использует mipmapping и трилинейный фильтр.

Все возможные варианты см. на странице текстурные константы.

.anisotropy : Constant

Количество образцов, взятых вдоль оси через пиксель, имеющий наибольшую плотность текселей. По умолчанию это значение равно 1. Большее значение дает менее размытый результат, чем базовая мипмапа, за счет использования большего количества текстурных образцов. Используйте renderer.getMaxAnisotropy(), чтобы найти максимальное допустимое значение анизотропии для данного GPU.

.format : Constant

По умолчанию используется v3d.RGBAFormat.

Подробности о других форматах см. на странице текстурные константы.

.internalFormat : String

Значение по умолчанию получается с помощью комбинации .format и .type.

Формат GPU позволяет разработчику указать, как данные будут храниться на графическом процессоре.

.type : Constant

Оно должно соответствовать .format. По умолчанию используется v3d.UnsignedByteType, который будет использоваться для большинства форматов текстур.

Подробности о других форматах см. на странице текстурные константы.

.generateMipmaps : Boolean

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

.premultiplyAlpha : Boolean

Если установлено значение true, то альфа-канал, если он присутствует, умножается на цветовые каналы при загрузке текстуры на GPU. По умолчанию false.

Обратите внимание, что это свойство не имеет эффекта для ImageBitmap. Вместо этого необходимо настроить при создании растрового изображения. См. ImageBitmapLoader.

.flipY : Boolean

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

Обратите внимание, что это свойство не имеет эффекта для ImageBitmap. Вместо этого необходимо настроить при создании растрового изображения. См. раздел ImageBitmapLoader.

.unpackAlignment : Integer

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

.encoding : Constant

v3d.LinearEncoding по умолчанию. Подробности о других форматах см. на странице текстурные константы.

Обратите внимание, что если это значение изменяется на текстуре после использования материала, необходимо обратиться к Material.needsUpdate, чтобы это значение было учтено в шейдере.

.version : Integer

Он начинается с 0 и считает, сколько раз .needsUpdate : Booleanустановлено в true.

.onUpdate : Function

Функция обратного вызова, вызываемая при обновлении текстуры (например, если для параметра needsUpdate было установлено значение true и затем используется текстура).

.needsUpdate : Boolean

Установите значение true, чтобы вызвать обновление при следующем использовании текстуры. Особенно важно для установки режима развёртки.

.userData : Object

Объект, который используется для хранения пользовательских данных о текстуре. Он не должен содержать ссылки на функции, так как они не будут клонироваться.

.source : Source

Определяет исходные данные текстуры. Ссылка на источник может расшариваться между различными текстурами. В частности, данная возможность используется в текстурных атласах, где несколько текстур с разными трансформациями используют одно и то же изображение.

Методы

Методы EventDispatcher доступны для данного класса.

.clone() → Texture

Создаёт копию текстуры. Обратите внимание, что это не "глубокая копия", изображение является общим. Кроме того, клонирование текстуры не приводит к её автоматической загрузке в память. Вам следует установить флаг .needsUpdate в true как только источник тестуры полностью загрузится и будет готов.

.dispose()

Вызовите EventDispatcher.dispatchEvent с типом события 'dispose'.

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

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