Константы Текстур

Режимы Маппинга

v3d.UVMapping v3d.CubeReflectionMapping v3d.CubeRefractionMapping v3d.EquirectangularReflectionMapping v3d.EquirectangularRefractionMapping v3d.CubeUVReflectionMapping v3d.CubeUVRefractionMapping

Они определяют режим отображения текстуры.
UVMapping — это режим по умолчанию, при котором текстура отображается с использованием UV-координат объекта.

Остальные определяют типы маппинга окруженающей среды.

CubeReflectionMapping и CubeRefractionMapping предназначены для использования с CubeTexture, которая состоит из шести текстур, по одной для каждой грани куба. CubeReflectionMapping — это значение по умолчанию для CubeTexture.

EquirectangularReflectionMapping и EquirectangularRefractionMapping предназначены для использования с равноугольной картой окружения. Также называемая картой широты, равноугольная текстура представляет собой 360-градусный вид вдоль горизонтальной центральной линии и 180-градусный вид вдоль вертикальной оси, причем верхний и нижний края изображения соответствуют северному и южному полюсам отображаемой сферы.

Смотрите пример materials / envmaps.

Режимы Обертывания

v3d.RepeatWrapping v3d.ClampToEdgeWrapping v3d.MirroredRepeatWrapping

Они определяют свойства текстуры wrapS и wrapT, которые определяют горизонтальное и вертикальное обертывание текстуры.

При использовании RepeatWrapping текстура будет просто повторяться до бесконечности.

ClampToEdgeWrapping по умолчанию. Последний пиксель текстуры растягивается до края сетки.

При использовании MirroredRepeatWrapping текстура будет повторяться до бесконечности, зеркально отражаясь при каждом повторении.

Magnification Filters (Фильтры Увеличения)

v3d.NearestFilter v3d.LinearFilter

Для использования со свойством magFilter текстуры, они определяют функцию увеличения текстуры, которая будет использоваться, когда пиксель, на который накладывается текстура, имеет площадь меньше или равную одному элементу текстуры (текселу).

NearestFilter возвращает значение элемента текстуры, который является ближайшим (по расстоянию Манхэттена) к указанным координатам текстуры.

LinearFilter используется по умолчанию и возвращает средневзвешенное значение четырех элементов текстуры, которые ближе всего к указанным координатам текстуры, и может включать элементы, обернутые или повторенные из других частей текстуры, в зависимости от значений wrapS и wrapT, а также от точного отображения.

Minification Filters (Фильтры Уменьшения)

v3d.NearestFilter v3d.NearestMipmapNearestFilter v3d.NearestMipmapLinearFilter v3d.LinearFilter v3d.LinearMipmapNearestFilter v3d.LinearMipmapLinearFilter

Для использования со свойством minFilter текстуры, они определяют функцию минимизации текстуры, которая используется всякий раз, когда пиксель, на который наносится текстура, отображается на область, превышающую один элемент текстуры (тексель).

В дополнение к NearestFilter и LinearFilter для минификации можно использовать следующие четыре функции:

NearestMipmapNearestFilter выбирает мипмапу, наиболее точно соответствующую размеру текстурируемого пикселя, и использует критерий NearestFilter (ближайший к центру пикселя тексель) для получения значения текстуры.

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

LinearMipmapNearestFilter выбирает мипмапу, наиболее точно соответствующую размеру текстурируемого пикселя, и использует критерий LinearFilter (средневзвешенное значение четырех текселей, наиболее близких к центру пикселя) для получения значения текстуры.

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

Смотрите пример materials / texture / filters.

Types

v3d.UnsignedByteType v3d.ByteType v3d.ShortType v3d.UnsignedShortType v3d.IntType v3d.UnsignedIntType v3d.FloatType v3d.HalfFloatType v3d.UnsignedShort4444Type v3d.UnsignedShort5551Type v3d.UnsignedShort565Type v3d.UnsignedInt248Type

Используется со свойством type текстуры, которое должно соответствовать правильному формату. Подробности см. ниже.

UnsignedByteType по умолчанию.

Formats

v3d.AlphaFormat v3d.RedFormat v3d.RedIntegerFormat v3d.RGFormat v3d.RGIntegerFormat v3d.RGBFormat v3d.RGBIntegerFormat v3d.RGBAFormat v3d.RGBAIntegerFormat v3d.LuminanceFormat v3d.LuminanceAlphaFormat v3d.RGBEFormat v3d.DepthFormat v3d.DepthStencilFormat

Для использования со свойством format текстуры, они определяют, как элементы двухмерной текстуры, или texels(тексели), считываются шейдерами.

AlphaFormat отбрасывает красный, зеленый и синий компоненты и считывает только альфа-компонент.

RedFormat отбрасывает зеленый и синий компоненты и считывает только красный компонент.

RedIntegerFormat отбрасывает зеленый и синий компоненты и считывает только красный компонент. Тексели считываются как целые числа, а не с плавающей точкой. (может использоваться только с рендерингом WebGL 2).

RGFormat отбрасывает альфа- и синие компоненты и считывает красную и зеленую компоненты. (может использоваться только с рендерингом WebGL 2).

RGIntegerFormat отбрасывает альфа- и синие компоненты и считывает красную и зеленую компоненты. Тексели считываются как целые числа, а не с плавающей точкой. (может использоваться только с рендерингом WebGL 2).

RGBFormat отбрасывает альфа-компоненты и считывает красные, зеленые и синие компоненты.

RGBIntegerFormat отбрасывает альфа-компоненты и считывает красные, зеленые и синие компоненты. (может использоваться только с рендерингом WebGL 2).

RGBAFormat используется по умолчанию и считывает красный, зеленый, синий и альфа-компоненты.

RGBAIntegerFormat используется по умолчанию и считывает красный, зеленый, синий и альфа-компоненты. Тексели считываются как целые числа, а не с плавающей точкой. (может использоваться только с рендерингом WebGL 2).

LuminanceFormat считывает каждый элемент как один компонент яркости. Затем это значение преобразуется в плавающую точку, ограничивается в диапазоне [0,1], а затем собирается в RGBA-элемент, помещая значение яркости в красный, зеленый и синий каналы и присоединяя 1.0 к альфа-каналу.

LuminanceAlphaFormat считывает каждый элемент как двойное значение яркости/альфа-канала. Происходит тот же процесс, что и для LuminanceFormat, за исключением того, что альфа-канал может иметь значения, отличные от 1.0.

RGBEFormat идентичен RGBAFormat.

DepthFormat считывает каждый элемент как одно значение глубины, преобразует его в значение с плавающей точкой и зажимает в диапазон [0,1]. Это значение по умолчанию для DepthTexture.

DepthStencilFormat каждый элемент представляет собой пару значений глубины и стенсиля. Компонент глубины пары интерпретируется как в DepthFormat. Компонент стенсиля интерпретируется на основе внутреннего формата "глубина + стенсиль".

Обратите внимание, что текстура должна иметь правильное значение type, как описано выше. Ознакомьтес с WebGLRenderingContext.texImage2D для деталей.

DDS / ST3C Форматы Сжатия Текстур

v3d.RGB_S3TC_DXT1_Format v3d.RGBA_S3TC_DXT1_Format v3d.RGBA_S3TC_DXT3_Format v3d.RGBA_S3TC_DXT5_Format

Для использования со свойством CompressedTexture format свойства format требуют поддержки для WEBGL_compressed_texture_s3tc расширение.

Через это расширение доступны четыре S3TC формата. К ним относятся:
RGB_S3TC_DXT1_Format: Сжатое в DXT1 изображение в формате RGB.
RGBA_S3TC_DXT1_Format: DXT1-сжатое изображение в формате RGB с простым включением/выключением альфа-значения.
RGBA_S3TC_DXT3_Format: DXT3-сжатое изображение в формате RGBA-изображения. По сравнению с 32-битной RGBA-текстурой оно обеспечивает сжатие 4:1.
RGBA_S3TC_DXT5_Format: DXT5-сжатое изображение в формате RGBA. Оно также обеспечивает сжатие 4:1, но отличается от сжатия DXT3 тем, как выполняется альфа-сжатие.

PVRTC Формат Сжатия Текстур

v3d.RGB_PVRTC_4BPPV1_Format v3d.RGB_PVRTC_2BPPV1_Format v3d.RGBA_PVRTC_4BPPV1_Format v3d.RGBA_PVRTC_2BPPV1_Format

Для использования свойства CompressedTexture format для format требуется поддержкаWEBGL_compressed_texture_pvrtc расширения.
PVRTC обычно доступен только на мобильных устройствах с чипсетами PowerVR, а это в основном устройства Apple.

Через это расширение доступны четыре PVRTC формата. К ним относятся:
RGB_PVRTC_4BPPV1_Format: Сжатие RGB в 4-битном режиме. Один блок на каждые 4×4 пикселя.
RGB_PVRTC_2BPPV1_Format: Сжатие RGB в 2-битном режиме. Один блок на каждые 8×4 пикселя.
RGBA_PVRTC_4BPPV1_Format: Сжатие RGBA в 4-битном режиме. Один блок на каждые 4×4 пикселя.
RGBA_PVRTC_2BPPV1_Format: Сжатие RGBA в 2-битном режиме. Один блок на каждые 8×4 пикселя.

ETC Формат Сжатия Текстур

v3d.RGB_ETC1_Format v3d.RGB_ETC2_Format v3d.RGBA_ETC2_EAC_Format

Для использования со свойством CompressedTexture format свойства format требуют поддержки для WEBGL_compressed_texture_etc1 (ETC1) или WEBGL_compressed_texture_etc (ETC2) расширения.

ASTC Формат Сжатия Текстур

v3d.RGBA_ASTC_4x4_Format v3d.RGBA_ASTC_5x4_Format v3d.RGBA_ASTC_5x5_Format v3d.RGBA_ASTC_6x5_Format v3d.RGBA_ASTC_6x6_Format v3d.RGBA_ASTC_8x5_Format v3d.RGBA_ASTC_8x6_Format v3d.RGBA_ASTC_8x8_Format v3d.RGBA_ASTC_10x5_Format v3d.RGBA_ASTC_10x6_Format v3d.RGBA_ASTC_10x8_Format v3d.RGBA_ASTC_10x10_Format v3d.RGBA_ASTC_12x10_Format v3d.RGBA_ASTC_12x12_Format v3d.SRGB8_ALPHA8_ASTC_4x4_Format v3d.SRGB8_ALPHA8_ASTC_5x4_Format v3d.SRGB8_ALPHA8_ASTC_5x5_Format v3d.SRGB8_ALPHA8_ASTC_6x5_Format v3d.SRGB8_ALPHA8_ASTC_6x6_Format v3d.SRGB8_ALPHA8_ASTC_8x5_Format v3d.SRGB8_ALPHA8_ASTC_8x6_Format v3d.SRGB8_ALPHA8_ASTC_8x8_Format v3d.SRGB8_ALPHA8_ASTC_10x5_Format v3d.SRGB8_ALPHA8_ASTC_10x6_Format v3d.SRGB8_ALPHA8_ASTC_10x8_Format v3d.SRGB8_ALPHA8_ASTC_10x10_Format v3d.SRGB8_ALPHA8_ASTC_12x10_Format v3d.SRGB8_ALPHA8_ASTC_12x12_Format

Для использования со свойством CompressedTexture format, требуется поддержка WEBGL_compressed_texture_astc разрешения.

Внутренние Форматы

'ALPHA' 'RGB' 'RGBA' 'LUMINANCE' 'LUMINANCE_ALPHA' 'RED_INTEGER' 'R8' 'R8_SNORM' 'R8I' 'R8UI' 'R16I' 'R16UI' 'R16F' 'R32I' 'R32UI' 'R32F' 'RG8' 'RG8_SNORM' 'RG8I' 'RG8UI' 'RG16I' 'RG16UI' 'RG16F' 'RG32I' 'RG32UI' 'RG32F' 'RGB565' 'RGB8' 'RGB8_SNORM' 'RGB8I' 'RGB8UI' 'RGB16I' 'RGB16UI' 'RGB16F' 'RGB32I' 'RGB32UI' 'RGB32F' 'RGB9_E5' 'SRGB8' 'R11F_G11F_B10F' 'RGBA4' 'RGBA8' 'RGBA8_SNORM' 'RGBA8I' 'RGBA8UI' 'RGBA16I' 'RGBA16UI' 'RGBA16F' 'RGBA32I' 'RGBA32UI' 'RGBA32F' 'RGB5_A1' 'RGB10_A2' 'RGB10_A2UI' 'SRGB8_ALPHA8' 'DEPTH_COMPONENT16' 'DEPTH_COMPONENT24' 'DEPTH_COMPONENT32F' 'DEPTH24_STENCIL8' 'DEPTH32F_STENCIL8'

Внимание: изменение внутреннего формата текстуры будет влиять на текстуру только при использовании контекста рендеринга WebGL 2.

Для использования со свойством internalFormat текстуры, они определяют, как элементы текстуры, или тексели, хранятся на GPU.

R8 хранит красный компонент в 8 битах.

R8_SNORM хранит красный компонент в 8 битах. Компонент хранится в нормализованном виде.

R8I хранит красный компонент в 8 битах. Компонент хранится как целое число.

R8UI хранит красный компонент в 8 битах. Компонент хранится как целое число без знака.

R16I хранит красный компонент в 16 битах. Компонент хранится как целое число.

R16UI хранит красный компонент в 16 битах. Компонент хранится как целое число без знака.

R16F хранит красный компонент в 16 битах. Компонент хранится в формате с плавающей точкой.

R32I хранит красный компонент в 32 битах. Компонент хранится как целое число.

R32UI хранит красный компонент в 32 битах. Компонент хранится как целое число без знака.

R32F хранит красный компонент в 32 битах. Компонент хранится в формате с плавающей точкой.

RG8хранит красный компонент в 32 битах.

RG8_SNORM хранит красный и зеленый компоненты по 8 бит каждый. Каждый компонент хранится в нормализованном виде.

RG8I хранит красный и зеленый компоненты по 8 бит каждый. Каждый компонент хранится как целое число.

RG8UI хранит красный и зеленый компоненты по 8 бит каждый. Каждый компонент хранится как целое число без знака.

RG16I хранит красный и зеленый компоненты по 16 бит каждый. Каждый компонент хранится как целое число.

RG16UI хранит красный и зеленый компоненты по 16 бит каждый. Каждый компонент хранится как целое число без знака.

RG16F хранит красный и зеленый компоненты по 16 бит каждый. Каждый компонент хранится в формате с плавающей точкой.

RG32I хранит красный и зеленый компоненты по 32 бита каждый. Каждый компонент хранится как целое число.

RG32UI хранит красный и зеленый компоненты в 32 битах. Каждый компонент хранится как целое число без знака.

RG32F хранит красный и зеленый компоненты в 32 битах. Каждый компонент хранится в формате с плавающей точкой.

RGB8 хранит красный, зеленый и синий компоненты по 8 бит каждый. RGB8_SNORM хранит красный, зеленый и синий компоненты по 8 бит каждый. Каждый компонент хранится в нормализованном виде.

RGB8I хранит красный, зеленый и синий компоненты по 8 бит каждый. Каждый компонент хранится как целое число.

RGB8UI хранит красный, зеленый и синий компоненты по 8 бит каждый. Каждый компонент хранится как целое число без знака.

RGB16I хранит красный, зеленый и синий компоненты по 16 бит каждый. Каждый компонент хранится как целое число.

RGB16UI хранит красный, зеленый и синий компоненты по 16 бит каждый. Каждый компонент хранится как целое число без знака.

RGB16F хранит красный, зеленый и синий компоненты по 16 бит каждый. Каждый компонент хранится в формате с плавающей точкой

RGB32I хранит красный, зеленый и синий компоненты по 32 бита каждый. Каждый компонент хранится как целое число.

RGB32UI хранит красный, зеленый и синий компоненты по 32 бита каждый. Каждый компонент хранится как целое число без знака.

RGB32F хранит красный, зеленый и синий компоненты по 32 бита каждый. Каждый компонент хранится в формате с плавающей точкой

R11F_G11F_B10F хранит красный, зеленый и синий компоненты соответственно в 11 битах, 11 битах и 10 битах. Каждый компонент хранится в формате с плавающей точкой.

RGB565 хранит красный, зеленый и синий компоненты соответственно в 5 битах, 6 битах и 5 битах.

RGB9_E5 хранит красный, зеленый и синий компоненты по 9 бит каждый.

RGBA8хранит красный, зеленый, синий и альфа-компоненты по 8 бит каждый.

RGBA8_SNORM хранит красный, зеленый, синий и альфа компоненты в 8 битах. Every component is stored as normalized.

RGBA8I хранит красный, зеленый, синий и альфа-компоненты по 8 бит каждый. Каждый компонент хранится как целое число.

RGBA8UI хранит красный, зеленый, синий и альфа компоненты в 8 битах. Каждый компонент хранится как целое число без знака.

RGBA16I хранит красный, зеленый, синий и альфа компоненты в 16 битах. Каждый компонент хранится как целое число.

RGBA16UI хранит красный, зеленый, синий и альфа компоненты в 16 битах. Каждый компонент хранится как целое число без знака.

RGBA16F хранит красный, зеленый, синий и альфа компоненты в 16 битах. Каждый компонент хранится в формате с плавающей точкой.

RGBA32I хранит красный, зеленый, синий и альфа компоненты в 32 битах. Каждый компонент хранится как целое число.

RGBA32UI хранит красный, зеленый, синий и альфа компоненты в 32 битах. Каждый компонент хранится как целое число без знака.

RGBA32F хранит красный, зеленый, синий и альфа компоненты в 32 битах. Каждый компонент хранится в формате с плавающей точкой.

RGB5_A1 хранит красный, зеленый, синий и альфа компоненты соответственно в 5 битах, 5 битах, 5 битах и 1 бите.

RGB10_A2 хранит красный, зеленый, синий и альфа компоненты соответственно в 10 битах, 10 битах, 10 битах и 2 битах.

RGB10_A2UI хранит красный, зеленый, синий и альфа компоненты соответственно в 10 битах, 10 битах, 10 битах и 2 битах. Каждый компонент хранится как целое число без знака.

SRGB8хранит красный, зеленый и синюий компоненты по 8 бит.

SRGB8_ALPHA8 хранит красный, зеленый, синий и альфа-компоненты по 8 бит каждый.

DEPTH_COMPONENT16 хранит компонент глубины в 16 битах.

DEPTH_COMPONENT24 хранит компонент глубины в 24 битах.

DEPTH_COMPONENT32F хранит компонент глубины в 32 битах. Компонент хранится в формате с плавающей точкой.

DEPTH24_STENCIL8 хранит компоненты глубины и стенсиля соответственно в 24 битах и 8 битах. Компонент стенсиля хранится как целое число без знака.

DEPTH32F_STENCIL8 хранит компоненты глубины и стенсиля соответственно в 32 битах и 8 битах. Компонент глубины хранится как плавающая точка, а компонент стенсиля - как целое число без знака.

Обратите внимание, что текстура должна иметь правильный набор type, а также правильный формат format. Смотрите WebGLRenderingContext.texImage2D, и WebGL2RenderingContext.texImage3D, для получения дополнительной информации о возможных комбинациях format, internalFormat, и type.

Для получения более подробной информации о внутренних форматах вы также можете обратиться непосредственно к разделу WebGL2 Specification и к OpenGL ES 3.0 Specification.

Encoding

v3d.LinearEncoding v3d.sRGBEncoding v3d.GammaEncoding v3d.RGBEEncoding v3d.LogLuvEncoding v3d.RGBM7Encoding v3d.RGBM16Encoding v3d.RGBDEncoding v3d.BasicDepthPacking v3d.RGBADepthPacking

Для использования со свойством encoding текстуры.

Если тип кодировки изменен после того, как текстура уже использовалась материалом, необходимо установить Material.needsUpdate в true, чтобы материал перекомпилировался.

LinearEncoding по умолчанию. Значения, отличные от этого, действительны только для карты материала, envMap и emissiveMap.

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

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