Three.js
From three.js
Текстуры
Текстура — растровое изображение, накладываемое на поверхность полигональной модели для придания ей цвета, окраски или иллюзии рельефа.
... читать далее
... читать далее
Приблизительно использование текстур можно легко представить как рисунок на поверхности скульптурного изображения. Использование текстур позволяет воспроизвести малые объекты поверхности, создание которых полигонами оказалось бы чрезмерно ресурсоёмким. Например, шрамы на коже, складки на одежде, мелкие камни и прочие предметы на поверхности стен и почвы.
Качество текстурированной поверхности определяется текселями — количеством пикселей на минимальную единицу текстуры. Так как сама по себе текстура является изображением, разрешение текстуры и её формат играют большую роль, которая впоследствии сказывается на общем впечатлении от качества графики в 3D-приложении.
Метод проецирования текстур для использования в трёхмерной графике впервые был предложен Эдвином Катмуллом в 1974 году.
Существует технология parallax mapping для создания трёхмерного описания текстурированной поверхности с использованием карт смещения.
(из Википедии)
Более полная информация в англоязычной версии этой статьи.
Текстура — изображение, воспроизводящее визуальные свойства каких-либо поверхностей или объектов. В отличие от рисунка, к текстуре не применяются нормы и требования композиции, поскольку текстура сама по себе художественным произведением не является, хотя и может иногда выступать доминантой в художественном произведении.
Текстуру, окрестности всех точек которой визуально подобны друг другу, называют равномерной текстурой (гомогенной текстурой).
В компьютерной графике текстурами часто называют растровые цифровые изображения, содержащие текстурные элементы.
Текстуру часто ошибочно называют фоном. Понятие фона относится к перспективному месту на изображении, заднему плану. Текстура же в этом смысле — это изображение, визуально отображающее совокупность свойств поверхности какого-либо объекта — реального или вымышленного.
Понятия «текстура» и «фактура» применительно к свойствам какой-либо поверхности используются синонимично. Иногда словом "фактура" называют совокупность тактильных свойств, а текстурой — совокупность свойств визуальных. Однако за цифровым графическим изображением таких свойств закрепилось слово «текстура».
(из Википедии)
Качество текстурированной поверхности определяется текселями — количеством пикселей на минимальную единицу текстуры. Так как сама по себе текстура является изображением, разрешение текстуры и её формат играют большую роль, которая впоследствии сказывается на общем впечатлении от качества графики в 3D-приложении.
Метод проецирования текстур для использования в трёхмерной графике впервые был предложен Эдвином Катмуллом в 1974 году.
Существует технология parallax mapping для создания трёхмерного описания текстурированной поверхности с использованием карт смещения.
(из Википедии)
Более полная информация в англоязычной версии этой статьи.
Текстура — изображение, воспроизводящее визуальные свойства каких-либо поверхностей или объектов. В отличие от рисунка, к текстуре не применяются нормы и требования композиции, поскольку текстура сама по себе художественным произведением не является, хотя и может иногда выступать доминантой в художественном произведении.
Текстуру, окрестности всех точек которой визуально подобны друг другу, называют равномерной текстурой (гомогенной текстурой).
В компьютерной графике текстурами часто называют растровые цифровые изображения, содержащие текстурные элементы.
Текстуру часто ошибочно называют фоном. Понятие фона относится к перспективному месту на изображении, заднему плану. Текстура же в этом смысле — это изображение, визуально отображающее совокупность свойств поверхности какого-либо объекта — реального или вымышленного.
Понятия «текстура» и «фактура» применительно к свойствам какой-либо поверхности используются синонимично. Иногда словом "фактура" называют совокупность тактильных свойств, а текстурой — совокупность свойств визуальных. Однако за цифровым графическим изображением таких свойств закрепилось слово «текстура».
(из Википедии)
CanvasTexture - текстура из элемента canvas
CompressedTexture - текстура на данных в сжатом виде
CubeTexture - кубическая текстура из шести изображений
DataTexture - текстура из необработанных данных
DepthTexture - текстура глубины
Texture - базовый класс текстур
VideoTexture - видео текстура
Texture →
CanvasTexture
Создает текстуру из элемента canvas.Это фактически тоже самое, что и базовый класс Texture, за исключением того, что свойство
needs update - требуется обновление')" onmouseout="hide()">needsUpdate сразу же устанавливается как true.
Конструктор
CanvasTexture( canvas, mapping, wrapS, wrapT,
- фильтр по максимуму (по увеличению)')" onmouseout="hide()">magFilter,
- фильтр по минимуму (уменьшению)')" onmouseout="hide()">minFilter, format, type,
и тропос — направление), т.е. различие свойств среды
(например, физических: упругости, электропроводности,
теплопроводности, показателя преломления, скорости звука
или света и др.) в различных направлениях внутри этой среды;
в противоположность изотропии.')" onmouseout="hide()">anisotropy )
canvas -- HTML элемент canvas, из которого загружается текстура.
mapping -- аргумент определяет способ наложения изображения на поверхность объекта.
Тип объекта
в соответствии с координатами UV полигональной
сетки (mesh)')" onmouseout="hide()">THREE.UVMapping. Другие возможные варианты смотрите в константах режима картирования.
в соответствии с координатами UV полигональной
сетки (mesh)')" onmouseout="hide()">THREE.UVMapping. Другие возможные варианты смотрите в константах режима картирования.
wrapS -- значением по умолчанию является
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
wrapT -- значением по умолчанию является
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
magFilter -- определяет способ выборки текстуры, когда тексель занимает больше одного пикселя.
Значением по умолчанию является
средневзвешенное значение четырех текстурных элементов,
наиболее близких к указанным координатам текстуры')" onmouseout="hide()">THREE.LinearFilter. Другие возможные варианты смотрите в константах фильтров увеличения.
средневзвешенное значение четырех текстурных элементов,
наиболее близких к указанным координатам текстуры')" onmouseout="hide()">THREE.LinearFilter. Другие возможные варианты смотрите в константах фильтров увеличения.
minFilter -- определяет способ выборки текстуры, когда тексель занимает меньше одного пикселя.
Значением по умолчанию является
выбирает две mip-карты, которые наиболее точно соответствуют размеру
текстурируемого пиксела и использует критерий LinearFilter (линейного
фильтра) для получения значения текстуры из каждой mip-карты')" onmouseout="hide()">THREE.LinearMipMapLinearFilter. Другие возможные варианты смотрите в константах фильтров минимизации.
выбирает две mip-карты, которые наиболее точно соответствуют размеру
текстурируемого пиксела и использует критерий LinearFilter (линейного
фильтра) для получения значения текстуры из каждой mip-карты')" onmouseout="hide()">THREE.LinearMipMapLinearFilter. Другие возможные варианты смотрите в константах фильтров минимизации.
format -- формат используемый в текстуре.
Другие возможные варианты смотрите в константах формата.
type -- значением по умолчанию является THREE.UnsignedByteType.
Другие возможные варианты смотрите в константах типа.
anisotropy -- число выборок, взятых через пиксель по оси с наибольшей плотностью текселей.
По умолчанию, значение данного аргумента равно 1. Более высокое значение дает менее размытый результат, чем базовая mip-карта, за счет большего количества используемых выборок текстуры.
Поиск максимально возможного значения анизотропии для
графической обработки, графический процессор или
попросту видеокарта')" onmouseout="hide()">GPU делается с помощью renderer.getMaxAnisotropy; это значение обычно является степень 2.
По умолчанию, значение данного аргумента равно 1. Более высокое значение дает менее размытый результат, чем базовая mip-карта, за счет большего количества используемых выборок текстуры.
Поиск максимально возможного значения анизотропии для
графической обработки, графический процессор или
попросту видеокарта')" onmouseout="hide()">GPU делается с помощью renderer.getMaxAnisotropy; это значение обычно является степень 2.
Свойства
Общие свойства смотрите в описании базового класса Texture..needsUpdate
Значением по умолчанию является true. Это необходимо для загрузки данных холста (canvas).Методы
Общие методы смотрите в описании базового класса Texture.Исходники
Texture →
CompressedTexture
Создает текстуру, основываясь на данных в сжатом виде, например изразработанный корпорацией Майкрософт для
использования в DirectX SDK.
DDS чаще всего используется для хранения текстур и
позволяет хранить их как в сжатом, так и в несжатом
виде.')" onmouseout="hide()">DDS-файла.
Используется с CompressedTextureLoader.
Конструктор
CompressedTexture(
Сокращение mip происходит от лат.
multum in parvo — «много в малом».')" onmouseout="hide()">mipmaps, width, height, format, type, mapping, wrapS, wrapT,
- фильтр по максимуму (по увеличению)')" onmouseout="hide()">magFilter,
- фильтр по минимуму (уменьшению)')" onmouseout="hide()">minFilter,
тропос — направление), т.е. различие свойств среды (например,
физических: упругости, электропроводности, теплопроводности,
показателя преломления, скорости звука или света и др.) в
различных направлениях внутри этой среды; в противоположность
изотропии.')" onmouseout="hide()">anisotropy )
mipmaps - массив mip-карт должен содержать объекты с данными, шириной и высотой. mip-карты должны быть правильного формата и типа.
Примечание переводчика: mip-карта или mip-пирамида (mipmap) - множественное отображение (последовательность текстур одного и того же изображения с уменьшающимся разрешением по мере удаления отображаемого объекта от наблюдателя). Каждая из этих текстур называется mip-уровнем (англ. mip level) или уровнем детализации (англ. level of detail).
(из Википедии)
(из Википедии)
width - ширина наибольшей mip-карты.
height - высота наибольшей mip-карты.
format - формат, используемый в mip-картах.
В качестве возможных вариантов смотрите форматы сжатия текстуры ST3C, PVRTC и ETC.
type - тип, используемый в mip-картах. Значением по умолчанию является THREE.UnsignedByteType.
Другие возможные варианты смотрите в константах типа.
mapping -- способ наложения изображения на поверхность объекта (картирование). Типом картирования по умолчанию является
в соответствии с координатами UV полигональной
сетки (mesh)')" onmouseout="hide()">THREE.UVMapping. Другие возможные варианты смотрите в константах режима картирования.
в соответствии с координатами UV полигональной
сетки (mesh)')" onmouseout="hide()">THREE.UVMapping. Другие возможные варианты смотрите в константах режима картирования.
wrapS -- значением по умолчанию является
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
wrapT -- значением по умолчанию является
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
magFilter -- определяет способ выборки текстуры, когда тексель занимает больше одного пикселя.
Значением по умолчанию является
средневзвешенное значение четырех текстурных элементов,
наиболее близких к указанным координатам текстуры')" onmouseout="hide()">THREE.LinearFilter. Другие возможные варианты смотрите в константах фильтров увеличения.
средневзвешенное значение четырех текстурных элементов,
наиболее близких к указанным координатам текстуры')" onmouseout="hide()">THREE.LinearFilter. Другие возможные варианты смотрите в константах фильтров увеличения.
minFilter -- определяет способ выборки текстуры, когда тексель занимает меньше одного пикселя.
Значением по умолчанию является
выбирает две mip-карты, которые наиболее точно соответствуют размеру
текстурируемого пиксела и использует критерий LinearFilter (линейного
фильтра) для получения значения текстуры из каждой mip-карты')" onmouseout="hide()">THREE.LinearMipMapLinearFilter. Другие возможные варианты смотрите в константах фильтров минимизации.
выбирает две mip-карты, которые наиболее точно соответствуют размеру
текстурируемого пиксела и использует критерий LinearFilter (линейного
фильтра) для получения значения текстуры из каждой mip-карты')" onmouseout="hide()">THREE.LinearMipMapLinearFilter. Другие возможные варианты смотрите в константах фильтров минимизации.
anisotropy -- число выборок, взятых через пиксель по оси с наибольшей плотностью текселей.
По умолчанию, значение данного аргумента равно 1. Более высокое значение дает менее размытый результат, чем базовая mip-карта, за счет большего количества используемых выборок текстуры.
Поиск максимально возможного значения анизотропии для
графической обработки, графический процессор или
попросту видеокарта')" onmouseout="hide()">GPU делается с помощью renderer.getMaxAnisotropy; это значение обычно является степенью 2.
По умолчанию, значение данного аргумента равно 1. Более высокое значение дает менее размытый результат, чем базовая mip-карта, за счет большего количества используемых выборок текстуры.
Поиск максимально возможного значения анизотропии для
графической обработки, графический процессор или
попросту видеокарта')" onmouseout="hide()">GPU делается с помощью renderer.getMaxAnisotropy; это значение обычно является степенью 2.
Свойства
Общие свойства смотрите в описании базового класса Texture..flipY
Значение по умолчанию равно false. Для сжатых текстур отражение не работает..generateMipmaps
Значение по умолчанию равно false. Для сжатых текстур нельзя создать mip-карты.Методы
Общие методы смотрите в описании базового класса Texture.Исходники
Texture →
CubeTexture
Создает кубическую текстуру, состоящую из шести изображений.Пример
var loader = new THREE.CubeTextureLoader(); loader.setPath( 'textures/cube/pisa/' );
var textureCube = loader.load( [ 'px.png', 'nx.png', 'py.png', 'ny.png', 'pz.png', 'nz.png' ] );
var material = new THREE.MeshBasicMaterial( { color: 0xffffff, envMap: textureCube } );
Конструктор
CubeTexture( images, mapping, wrapS, wrapT,По функциональности и применению CubeTexture фактически равна Texture. Отличие состоит только в том, что аргумент images представляет собой массив из 6 изображений, а не одно изображение, и вариантами картирования является THREE.CubeReflectionMapping (по умолчанию) или THREE.CubeRefractionMapping.
- фильтр по максимуму (по увеличению)')" onmouseout="hide()">magFilter,
- фильтр по минимуму (уменьшению)')" onmouseout="hide()">minFilter, format, type,
и тропос — направление), т.е. различие свойств среды
(например, физических: упругости, электропроводности,
теплопроводности, показателя преломления, скорости звука
или света и др.) в различных направлениях внутри этой среды;
в противоположность изотропии.')" onmouseout="hide()">anisotropy )
Свойства
Общие свойства смотрите в описании базового класса Texture.Методы
Общие методы смотрите в описании базового класса Texture.Исходники
Texture →
DataTexture
Создает текстуру непосредственно из необработанных данных (raw data), ширины и высоты.Пример
// create a buffer with color data // создаем буфер с данными цвета var size = width * height; var data = new Uint8Array( 3 * size );
var r = Math.floor( color.r * 255 ); var g = Math.floor( color.g * 255 ); var b = Math.floor( color.b * 255 );
for ( var i = 0; i < size; i ++ ) {
var stride = i * 3;
data[ stride ] = r; data[ stride + 1 ] = g; data[ stride + 2 ] = b; }
// used the buffer to create a DataTexture // используем буфер для создания DataTexture var texture = new THREE.DataTexture( data, width, height, THREE.RGBFormat );
Конструктор
DataTexture(Аргумент data должен быть ArrayBuffer или разновидностью типизированного массива. Остальные параметры соответствуют свойствам, наследуемым из Texture, среди которых и magFilter и minFilter, оба имеют по умолчанию значение THREE.NearestFilter. Свойства flipY и generateMipmaps изначально установлены как false.
либо разновидность типизированного массива')">data, width, height, format, type, mapping, wrapS, wrapT,
- фильтр по максимуму (по увеличению)')" onmouseout="hide()">magFilter,
- фильтр по минимуму (уменьшению)')" onmouseout="hide()">minFilter,
и тропос — направление), т.е. различие свойств среды
(например, физических: упругости, электропроводности,
теплопроводности, показателя преломления, скорости звука
или света и др.) в различных направлениях внутри этой среды;
в противоположность изотропии.')" onmouseout="hide()">anisotropy )
Интерпретация данных (аргумент data) зависит от типа и формата: Если типом является THREE.UnsignedByteType, то для адресации данных текселей целесообразен Uint8Array. Если форматом является THREE.RGBAFormat, то для данных требуется четыре значения на каждый тексель; значения цвета - красный (red), зеленый (green), синий (blue) и значение альфа-канала (обычно канал прозрачности). Аналогично, формат THREE.RGBFormat определяет только три значения каждого текселя.
Для типов упакованных данных,
в шестнадцатиразрядное двоичное число
по четыре разряда на каждое из значений')" onmouseout="hide()">THREE.UnsignedShort4444Type,
в шестнадцатиразрядное двоичное число
по пять разрядов на каждое из значений цвета
и один разряд для значения прозрачности')" onmouseout="hide()">THREE.UnsignedShort5551Type или
двоичное число по пять разрядов на красный и синий
цвета и шесть разрядов на зеленый цвет')" onmouseout="hide()">THREE.UnsignedShort565Type, все компоненты цвета одного текселя можно рассматривать как битовые поля внутри целочисленного элемента в формате Uint16Array.
Для использования типов THREE.FloatType и THREE.HalfFloatType реализация WebGL должна поддерживать соответствующие расширения OES_texture_float и OES_texture_half_float.
Чтобы использовать THREE.LinearFilter для покомпонентной, билинейной интерполяции текселей на основе этих типов, также должны присутствовать WebGL расширения OES_texture_float_linear или OES_texture_half_float_linear.
Свойства
.image
Переопределяет тип записи удерживаемых данных, шириной и высотой.Методы
Исходники
Texture →
DepthTexture
Создает текстуру, используемую в качестве текстуры глубины. Требуется поддержка расширения WEBGL_depth_texture. Согласно WebGLStats, на февраль 2016 года это расширение поддерживает около 85% устройств с включенным WebGL.Пример
WebGL / depth / texture
Конструктор
DepthTexture( width, height, type, wrapS, wrapT,
- фильтр по максимуму (по увеличению)')" onmouseout="hide()">magFilter,
- фильтр по минимуму (уменьшению)')" onmouseout="hide()">minFilter,
и тропос — направление), т.е. различие свойств среды
(например, физических: упругости, электропроводности,
теплопроводности, показателя преломления, скорости звука
или света и др.) в различных направлениях внутри этой среды;
в противоположность изотропии.')" onmouseout="hide()">anisotropy, format )
width -- ширина текстуры.
height -- высота текстуры.
type -- значением по умолчанию является
т.е. короткое целочисленное число без знака
(диапазон от 0 до 65 535)')" onmouseout="hide()">THREE.UnsignedShortType. Другие возможные варианты смотрите в константах типа.
т.е. короткое целочисленное число без знака
(диапазон от 0 до 65 535)')" onmouseout="hide()">THREE.UnsignedShortType. Другие возможные варианты смотрите в константах типа.
wrapS -- значением по умолчанию является
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
wrapT -- значением по умолчанию является
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
magFilter -- определяет способ выборки текстуры, когда тексель занимает больше одного пикселя.
Значением по умолчанию является
наиболее близкое значение к указанным
координатам текстуры')" onmouseout="hide()">THREE.NearestFilter. Другие возможные варианты смотрите в константах фильтров увеличения.
наиболее близкое значение к указанным
координатам текстуры')" onmouseout="hide()">THREE.NearestFilter. Другие возможные варианты смотрите в константах фильтров увеличения.
minFilter -- определяет способ выборки текстуры, когда тексель занимает меньше одного пикселя.
Значением по умолчанию является
наиболее близкое значение к указанным
координатам текстуры')" onmouseout="hide()">THREE.NearestFilter. Другие возможные варианты смотрите в константах фильтров минимизации.
наиболее близкое значение к указанным
координатам текстуры')" onmouseout="hide()">THREE.NearestFilter. Другие возможные варианты смотрите в константах фильтров минимизации.
anisotropy -- число выборок, взятых через пиксель по оси с наибольшей плотностью текселей.
По умолчанию, значение данного аргумента равно 1. Более высокое значение дает менее размытый результат, чем базовая mip-карта, за счет большего количества используемых выборок текстуры.
Поиск максимально возможного значения анизотропии для
графической обработки, графический процессор или
попросту видеокарта')" onmouseout="hide()">GPU делается с помощью renderer.getMaxAnisotropy; это значение обычно является степень 2.
По умолчанию, значение данного аргумента равно 1. Более высокое значение дает менее размытый результат, чем базовая mip-карта, за счет большего количества используемых выборок текстуры.
Поиск максимально возможного значения анизотропии для
графической обработки, графический процессор или
попросту видеокарта')" onmouseout="hide()">GPU делается с помощью renderer.getMaxAnisotropy; это значение обычно является степень 2.
format -- формат используемый в текстуре, должен быть либо
depth format - формат глубины')" onmouseout="hide()">DepthFormat (по умолчанию) либо
depth stencil format - формат трафарета глубины')" onmouseout="hide()">DepthStencilFormat. Подробнее смотрите в константах формата.
depth format - формат глубины')" onmouseout="hide()">DepthFormat (по умолчанию) либо
depth stencil format - формат трафарета глубины')" onmouseout="hide()">DepthStencilFormat. Подробнее смотрите в константах формата.
Свойства
Общие методы смотрите в описании базового класса Texture. Свойства, приведенные ниже, также являются частью класса Texture, но имеют здесь другие значения по умолчанию..formatЗначением свойства должно быть либо
depth format - формат глубины')" onmouseout="hide()">DepthFormat (по умолчанию) либо
depth stencil format - формат трафарета глубины')" onmouseout="hide()">DepthStencilFormat. Подробнее смотрите в константах формата.
.typeзначением по умолчанию является
т.е. короткое целочисленное число без знака
(диапазон от 0 до 65 535)')" onmouseout="hide()">THREE.UnsignedShortType. Другие возможные варианты смотрите в константах типа.
.magFilterопределяет способ выборки текстуры, когда тексель занимает больше одного пикселя. Значением по умолчанию является
наиболее близкое значение к указанным
координатам текстуры')" onmouseout="hide()">THREE.NearestFilter. Другие возможные варианты смотрите в константах фильтров увеличения.
.minFilterСвойство определяет способ выборки текстуры, когда тексель занимает меньше одного пикселя. Значением по умолчанию является
наиболее близкое значение к указанным
координатам текстуры')" onmouseout="hide()">THREE.NearestFilter. Другие возможные варианты смотрите в константах фильтров минимизации.
.flipYТекстуры глубины не требуется переворачивать, так что это свойство по умолчанию установлено как false.
.generateMipmapsТекстуры глубины не используют mip-картирование.
Методы
Общие методы смотрите в описании базового класса Texture.Исходники
Texture
Создает текстуру применяемую к поверхности объекта или в качестве карты отражения или преломления.Пример
// load a texture, set wrap mode to repeat // загрузка текстуры, установка режима стыковки для повторения var texture = new THREE.TextureLoader().load( "textures/water.jpg" ); texture.wrapS = THREE.RepeatWrapping; texture.wrapT = THREE.RepeatWrapping; texture.repeat.set( 4, 4 );
Конструктор
Texture(
загруженное с помощью метода TextureLoader.load')">image,
изображения на поверхность объекта')" onmouseout="hide()">mapping, wrapS, wrapT,
- фильтр по максимуму (по увеличению)')" onmouseout="hide()">magFilter,
- фильтр по минимуму (уменьшению)')" onmouseout="hide()">minFilter, format, type,
и тропос — направление), т.е. различие свойств среды
(например, физических: упругости, электропроводности,
теплопроводности, показателя преломления, скорости звука
или света и др.) в различных направлениях внутри этой среды;
в противоположность изотропии.')" onmouseout="hide()">anisotropy )
Свойства
и тропос — направление), т.е. различие свойств среды
(например, физических: упругости, электропроводности,
теплопроводности, показателя преломления, скорости звука
или света и др.) в различных направлениях внутри этой среды;
в противоположность изотропии.')" onmouseout="hide()">.anisotropy
Число выборок, взятых через пиксель по оси с наибольшей плотностью текселей.
По умолчанию, значение данного аргумента равно 1. Более высокое значение дает менее размытый результат, чем базовая mip-карта, за счет большего количества используемых выборок текстуры.Поиск максимально возможного значения анизотропии для
графической обработки, графический процессор или
попросту видеокарта')" onmouseout="hide()">GPU делается с помощью renderer.getMaxAnisotropy; это значение обычно является степенью 2.
Свойство показывает, где находится центр вращения. Для поворота вокруг центральной точки установите данное значение как (0.5, 0.5). Значение по умолчанию равно (0.0, 0.0).
center - центр')" onmouseout="hide()">.center
.encoding
Значением по умолчанию является THREE.LinearEncoding.
Другие возможные варианты смотрите в описании констант кодирования текстуры.Обратите внимание, что если данное значение изменяется на текстуре после использования материала, необходимо запустить Material.needsUpdate этого значения, чтобы выполнить обновление в шейдере.
.flipY
Значение по умолчанию равно true. Переворачивает координатную ось Y объекта для соответствия пространству текстурных координат WebGL..format
Значением по умолчанию является данные каналов цвета
R (red) - красный,
G (green) - зеленый,
B (blue) - синий
и канала прозрачности A (alfa) - альфа-канал')" onmouseout="hide()">THREE.RGBAFormat, хотя для изображений в формате JPG TextureLoader автоматически установит это свойство как
данные каналов цвета
R (red) - красный,
G (green) - зеленый и
B (blue) - синий')" onmouseout="hide()">THREE.RGBFormat.
Другие возможные варианты смотрите в описании констант формата текстуры.
.generateMipmaps
Свойство определяет, будут ли создаваться для текстуры mip-карты (если это возможно). Значением по умолчанию является true..id
Уникальное число для данного экземпляра текстуры (только для чтения).
загруженное с помощью метода TextureLoader.load')">.image
Объект изображение, обычно создаваемый с помощью метода TextureLoader.load.
Это может быть любой тип изображения (например, PNG, JPG, GIF, DDS) или видео (например, MP4, OGG/OGV), поддерживаемый three.js.Чтобы использовать видео в качестве текстуры нужно иметь элемент HTML5, воспроизводящий видео, как ресурс для изображения текстуры и постоянно обновлять эту текстуру, до тех пор пока видео проигрывается - класс VideoTexture делает это автоматически.
изображения на поверхность объекта')" onmouseout="hide()">.mapping
Свойство определяет способ применения изображения к объекту.
По умолчанию типом объекта является в соответствии с координатами UV полигональной
сетки (mesh)')" onmouseout="hide()">THREE.UVMapping, то есть при укладке используются U и V координаты. Другие возможные варианты смотрите в константах режима картирования.br>
- фильтр по максимуму (по увеличению)')" onmouseout="hide()">.magFilter
Свойство определяет способ выборки текстуры, когда тексель занимает больше одного пикселя.
Значением по умолчанию является средневзвешенное значение четырех текстурных элементов,
наиболее близких к указанным координатам текстуры')" onmouseout="hide()">THREE.LinearFilter, при котором берутся четыре самых близких текселя и с помощью билинейной интерполяции среди них получается новое значение. Другим возможным вариантом является THREE.NearestFilter, при котором используется значение ближайшего текселя. Более подробно смотрите в описании констант фильтров увеличения.
Матрица изменения UV координат текстуры. Обновляется рендерером (визуализатором) из свойств текстуры offset, repeat и rotation, когда значение свойства текстуры matrixAutoUpdate установлено как true. Если значение matrixAutoUpdate установлено как false, данную матрицу можно устанавливать вручную. Значением по умолчанию является единичная матрица.
matrix - матрица')" onmouseout="hide()">.matrix
.matrixAutoUpdate
Значение этого свойства определяет, требуется ли обновление матрице изменения координат UV исходя из настроек offset,
repeat и rotation.
Значением по умолчанию является true. Если нужно напрямую установить матрицу изменения координат UV, установите значение false.
- фильтр по минимуму (уменьшению)')" onmouseout="hide()">.minFilter
Свойство определяет способ выборки текстуры, когда тексель занимает меньше одного пикселя.
Значением по умолчанию является выбирает две mip-карты, которые наиболее точно соответствуют размеру
текстурируемого пиксела и использует критерий LinearFilter (линейного
фильтра) для получения значения текстуры из каждой mip-карты')" onmouseout="hide()">THREE.LinearMipMapLinearFilter, при котором используется mip-картирование и трилинейный фильтр.
Другие возможные варианты смотрите в константах фильтров минимизации.
.mipmaps
Массив mip-карт, задаваемый пользователем (дополнительное, необязательное свойство)..name
Дополнительное имя объекта (ему необязательно быть уникальным). Значением по умолчанию является пустая строка..needsUpdate
Установите значение этого свойства как true для запуска обновления при следующем использовании текстуры. Особенно это важно для установки режима укладки текстуры.Свойство показывает насколько одно повторение текстуры смещено от начала, в каждом направлении U и V. Обычный диапазон значений от 0.0 до 1.0.
offset - смещение')" onmouseout="hide()">.offset
Примечание: свойство offset является расчетным модификатором и влияет только на применение текстуры к первому набору координат UV модели.
Если текстура используется как карта, требующая дополнительных наборов координат UV (например aoMap или lightMap большинства материалов ассортимента),
то для достижения желаемого повторения эти координаты должны быть назначены вручную.
.onUpdate
Функция обратного вызова, вызываемая при обновлении текстуры (например когда свойство needsUpdate установлено как true и затем данная текстура используется)..premultiplyAlpha
Значением по умолчанию равно false, что является нормой для изображений в формате PNG. Если значения RGB хранились предварительно перемноженными на значение альфа-канала (канал прозрачности), то установите значение true.Свойство показывает сколько раз текстура повторяется по поверхности, в каждом направлении U и V. Если значение этого свойства установлено больше 1 в любом направлении, то соответствующий параметр укладки текстуры (wrapS или wrapT) также должен быть установлен как
repeat - повторение')" onmouseout="hide()">.repeat
укладка текстуры повторяется до бесконечности')" onmouseout="hide()">THREE.RepeatWrapping или
текстура будет повторяться бесконечно, зеркально отражаясь
при каждом повторе')" onmouseout="hide()">THREE.MirroredRepeatWrapping для достижения желаемого эффекта мозаичной укладки.
Примечание: свойство repeat является расчетным модификатором и влияет только на применение текстуры к первому набору координат UV модели.
Если текстура используется как карта, требующая дополнительных наборов координат UV (например aoMap или lightMap большинства материалов ассортимента),
то для достижения желаемого повторения эти координаты должны быть назначены вручную.
.rotation
Угол, на который текстура поворачивается вокруг центральной точки, в радианах. Положительным значениям соответствует поворот против часовой стрелки. Значение по умолчанию равно 0..type
Значение данного свойства должно соответствовать значению свойства format.
Значением по умолчанию является THREE.UnsignedByteType, который будет использоваться для большинства форматов текстур.Другие возможные варианты смотрите в описании констант типа текстуры.
.unpackAlignment
Свойство определяет требования к выравниванию в памяти начала каждого ряда пикселов. Значение по умолчанию равно 4.
Допустимыми значениями являются 1 (выравнивание по байтам), 2 (ряды выравниваются по четным байтам), 4 (выравнивание по словам) и 8 (ряды начинаются на границах двойных слов).
Подробнее смотрите в описании свойства glPixelStorei на www.khronos.org.
unique identifier - универсальный
уникальный идентификатор')" onmouseout="hide()">.uuid
unique identifier - универсальный
уникальный идентификатор');" onmouseout="hide()">UUID данного экземпляра объекта. Он присваивается автоматически и не должен быть изменен.
Вот статья Википедии про UUID на русском языке.
.version
Это свойство ведет подсчет (начиная с 0) сколько раз свойство needsUpdate было установлено как true..wrapS
Свойство определяет укладку текстуры по горизонтали и соответствует координате U в картировании по координатам UV.
Значением по умолчанию является последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping, при этом край прижимается к внешним текселям края. Другие возможные варианты -
укладка текстуры повторяется до бесконечности')" onmouseout="hide()">THREE.RepeatWrapping и
текстура будет повторяться бесконечно, зеркально отражаясь
при каждом повторе')" onmouseout="hide()">THREE.MirroredRepeatWrapping. Подробности смотрите в описании констант режима укладки текстур.
.wrapT
Свойство определяет укладку текстуры по вертикали и соответствует координате V в картировании по координатам UV. Значение по умолчанию и другие возможные варианты такие же как у свойства wrapS.
Примечание: мозаичное размещение изображений в текстурах работает только в том случае, если размеры изображения являются степенью двойки (2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, ...) в переводе на пиксели.
Отдельные размеры не обязательно должны быть равными, но каждый из них должен быть степенью двойки. Это ограничение от WebGL, а не three.js.
Методы
В этом классе доступны методы EventDispatcher.Метод делает копию текстуры. Обратите внимание, что это не Note this is not a "deep copy", the image is shared.
clone - клонировать')" onmouseout="hide()">.clone (
texture - текстура')" onmouseout="hide()">texture )
.dispose( )
Вызывает метод EventDispatcher.dispatchEvent с типом события dispose.
to JSON - в формат JSON, где JSON это
сокращ. англ. слов JavaScript Object Notation,
обычно произносится как /ˈdʒeɪsən/ JAY-sən)
— текстовый формат обмена данными,
основанный на JavaScript.')" onmouseout="hide()">.toJSON( meta )
meta -- дополнительный, необязательный объект, содержащий метаданные.
Конвертирует материал в формат JSON
Convert the material to three.js JSON format..transformUv(Метод изменяет координаты UV исходя из значений свойств repeat, offset, wrapS, wrapT и flipY данной текстуры.
uv - координаты UV')" onmouseout="hide()">uv )
Исходники
Texture →
VideoTexture
Создает текстуру для использования с видеоструктурой.Это почти то же самое, что и базовый класс Texture, за исключением того, что здесь свойство needsUpdate постоянно устанавливается как true, чтобы текстура обновлялась по мере воспроизведения видеоролика. Также здесь отключено автоматическое создание mip-карт.
Пример
// assuming you have created a HTML video element with id="video" // предположим что имеется созданый HTML видеоэлемент с id="video" var video = document.getElementById( 'video' );
var texture = new THREE.VideoTexture( video ); texture.minFilter = THREE.LinearFilter; texture.magFilter = THREE.LinearFilter; texture.format = THREE.RGBFormat;
Другие примеры
WebGL / materials / video
Конструктор
VideoTexture( video, mapping, wrapS, wrapT,
- фильтр по максимуму (по увеличению)')" onmouseout="hide()">magFilter,
- фильтр по минимуму (уменьшению)')" onmouseout="hide()">minFilter, format, type,
и тропос — направление), т.е. различие свойств среды
(например, физических: упругости, электропроводности,
теплопроводности, показателя преломления, скорости звука
или света и др.) в различных направлениях внутри этой среды;
в противоположность изотропии.')" onmouseout="hide()">anisotropy )
video -- видеоэлемент, используемый в качестве текстуры.
mapping -- аргумент определяет способ применения изображения к объекту.
Тип объекта
в соответствии с координатами UV полигональной
сетки (mesh)')" onmouseout="hide()">THREE.UVMapping. Другие возможные варианты смотрите в константах режима картирования.
в соответствии с координатами UV полигональной
сетки (mesh)')" onmouseout="hide()">THREE.UVMapping. Другие возможные варианты смотрите в константах режима картирования.
wrapS -- значением по умолчанию является
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
wrapT -- значением по умолчанию является
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
последний пиксел текстуры растягивается до края
полигональной сетки (mesh)')" onmouseout="hide()">THREE.ClampToEdgeWrapping. Другие возможные варианты смотрите в константах режима укладки текстур.
magFilter -- определяет способ выборки текстуры, когда тексель занимает больше одного пикселя.
Значением по умолчанию является
средневзвешенное значение четырех текстурных элементов,
наиболее близких к указанным координатам текстуры')" onmouseout="hide()">THREE.LinearFilter. Другие возможные варианты смотрите в константах фильтров увеличения.
средневзвешенное значение четырех текстурных элементов,
наиболее близких к указанным координатам текстуры')" onmouseout="hide()">THREE.LinearFilter. Другие возможные варианты смотрите в константах фильтров увеличения.
minFilter -- определяет способ выборки текстуры, когда тексель занимает меньше одного пикселя.
Значением по умолчанию является
выбирает две mip-карты, которые наиболее точно соответствуют размеру
текстурируемого пиксела и использует критерий LinearFilter (линейного
фильтра) для получения значения текстуры из каждой mip-карты')" onmouseout="hide()">THREE.LinearMipMapLinearFilter. Другие возможные варианты смотрите в константах фильтров минимизации.
выбирает две mip-карты, которые наиболее точно соответствуют размеру
текстурируемого пиксела и использует критерий LinearFilter (линейного
фильтра) для получения значения текстуры из каждой mip-карты')" onmouseout="hide()">THREE.LinearMipMapLinearFilter. Другие возможные варианты смотрите в константах фильтров минимизации.
format -- формат используемый в текстуре.
Другие возможные варианты смотрите в константах формата.
type -- значением по умолчанию является THREE.UnsignedByteType.
Другие возможные варианты смотрите в константах типа.
anisotropy -- число выборок, взятых через пиксель по оси с наибольшей плотностью текселей.
По умолчанию, значение данного аргумента равно 1. Более высокое значение дает менее размытый результат, чем базовая mip-карта, за счет большего количества используемых выборок текстуры.
Поиск максимально возможного значения анизотропии для
графической обработки, графический процессор или
попросту видеокарта')" onmouseout="hide()">GPU делается с помощью renderer.getMaxAnisotropy; это значение обычно является степень 2.
По умолчанию, значение данного аргумента равно 1. Более высокое значение дает менее размытый результат, чем базовая mip-карта, за счет большего количества используемых выборок текстуры.
Поиск максимально возможного значения анизотропии для
графической обработки, графический процессор или
попросту видеокарта')" onmouseout="hide()">GPU делается с помощью renderer.getMaxAnisotropy; это значение обычно является степень 2.
Свойства
Общие свойства смотрите в описании базового класса Texture..needsUpdate
Это свойство не нужно устанавливать вручную, поскольку оно автоматически обрабатывается методом
update - обновление')" onmouseout="hide()">update.
Методы
Общие методы смотрите в описании базового класса Texture..update( )
Этот метод вызывается автоматически и устанавливает свойство needs update - требуется обновление')" onmouseout="hide()">needsUpdate как true каждый раз, когда доступен новый кадр (frame).