Texture

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

Пример

// load a texture, set wrap mode to repeat const texture = new v3d.TextureLoader().load("textures/water.jpg"); texture.wrapS = v3d.RepeatWrapping; texture.wrapT = v3d.RepeatWrapping; texture.repeat.set(4, 4);

Конструктор

Texture(image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding)

Свойста

.id : Integer

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

.uuid : String

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

.name : String

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

.image : Image

Объект изображения, обычно создаваемый с помощью метода TextureLoader.load. Это может быть любое изображение (например, PNG, JPG, GIF, DDS) или видео (например, MP4, OGG/OGV), поддерживаемое Verge3D.

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

.mipmaps : Array

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

.mapping : number

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

.wrapS : number

Определяет, как текстура будет обернута по горизонтали, и соответствует U в UV mapping.
По умолчанию используется v3d.ClampToEdgeWrapping, где край крепится к текселям внешнего края. Два других варианта - v3d.RepeatWrapping и v3d.MirroredRepeatWrapping. Подробности см. на странице texture constants.

.wrapT : number

Это определяет, как текстура будет обернута по вертикали, и соответствует V в UV mapping.
Доступны те же варианты, что и для .wrapS : number..

ПРИМЕЧАНИЕ: тайлинг изображений в текстурах работает только в том случае, если размеры изображения равны степени двойки (2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, ...) в терминах пикселей. Отдельные размеры не обязательно должны быть равны, но каждый из них должен быть равен степени двойки. Это ограничение WebGL, а не Verge3D.

.magFilter : number

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

.minFilter : number

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

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

.anisotropy : number

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

.format : number

По умолчанию используется v3d.RGBAFormat, хотя TextureLoader автоматически устанавливает v3d.RGBFormat для изображений JPG.

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

.internalFormat : String

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

Подробности о всех поддерживаемых внутренних форматах см. на странице texture constants.

.type : number

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

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

.offset : Vector2

На сколько один повтор текстуры смещен от начала, в каждом направлении U и V. Типичный диапазон от 0.0 до 1.0. _Примечание:_ Свойство смещения является модификатором удобства и влияет только на применение текстуры к первому набору UV на модели. Если текстура используется в качестве карты, требующей дополнительные наборы UV (например, aoMap или lightMap большинства стоковых материалов), эти UV должны быть назначены вручную. чтобы добиться желаемого смещения.

.repeat : Vector2

Сколько раз текстура повторяется по поверхности, в каждом направлении U и V. Если параметр repeat установлен больше 1 в любом направлении, соответствующий параметр Wrap также должен быть установлен в значение v3d.RepeatWrapping или v3d.MirroredRepeatWrapping для достижения желаемого тайлинга. _Примечание:_ Свойство repeat является удобным модификатором и влияет только на применение текстуры к первому набору UV на модели. Если текстура используется в качестве карты, требующей дополнительные наборы UV (например, aoMap или lightMap большинства стоковых материалов), эти UV должны быть назначены вручную. чтобы добиться желаемого повторения.

.rotation : number

На сколько повернута текстура вокруг центральной точки, в радианах. Положительные значения - против часовой стрелки. По умолчанию 0.

.center : Vector2

Точка, вокруг которой происходит вращение. Значение (0.5, 0.5) соответствует центру текстуры. По умолчанию (0, 0) - нижний левый угол.

.matrixAutoUpdate : Boolean

Обновлять ли uv-трансформацию текстуры .matrix из свойств текстуры .offset, .repeat, .rotation и .center. По умолчанию значение True. Установите значение false, если вы указываете матрицу uv-трансформации напрямую.

.matrix : Matrix3

Матрица uv-трансформирования для текстуры. Обновляется рендерером из свойств текстуры .offset, .repeat, .rotation и .center, когда свойство .matrixAutoUpdate текстуры равно true. Когда свойство .matrixAutoUpdate ложно, эта матрица может быть установлена вручную. По умолчанию используется матрица тождества.

.generateMipmaps : Boolean

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

.premultiplyAlpha : Boolean

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

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

.flipY : Boolean

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

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

.unpackAlignment : number

4 по умолчанию. Определяет требования к выравниванию начала каждой строки пикселей в памяти. Допустимые значения: 1 (выравнивание по байтам), 2 (строки выравниваются по четным байтам), 4 (выравнивание по словам) и 8 (строки начинаются на границах двойных слов). Смотрите [ссылка:http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml glPixelStorei]. для получения дополнительной информации.

.encoding : number

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

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

.version : Integer

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

.onUpdate : Function

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

.needsUpdate : Boolean

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

Методы

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

.updateMatrix() → null

Обновите uv-трансформацию текстуры .matrix из свойств текстуры .offset, .repeat, .rotation и .center.

.clone() → Texture

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

.dispose() → null

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

.transformUv(uv : Vector2) → Vector2

Преобразование uv на основе значений свойств .offset, .repeat этой текстуры, .wrapS, .wrapT и .flipY.

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

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