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-градусный вид вдоль вертикальной оси, причем верхний и нижний края изображения соответствуют северному и южному полюсам отображаемой сферы.
v3d.RepeatWrapping
v3d.ClampToEdgeWrapping
v3d.MirroredRepeatWrapping
Они определяют свойства текстуры wrapS и wrapT, которые определяют горизонтальное и вертикальное обертывание текстуры.
При использовании RepeatWrapping текстура будет просто повторяться до бесконечности.
ClampToEdgeWrapping по умолчанию.
Последний пиксель текстуры растягивается до края сетки.
При использовании MirroredRepeatWrapping текстура будет повторяться до бесконечности, зеркально отражаясь при каждом повторении.
v3d.NearestFilter
v3d.LinearFilter
Для использования со свойством magFilter текстуры, они определяют функцию увеличения текстуры, которая будет использоваться, когда пиксель, на который накладывается текстура, имеет площадь меньше или равную одному элементу текстуры (текселу).
NearestFilter возвращает значение элемента текстуры, который является ближайшим (по расстоянию Манхэттена) к указанным координатам текстуры.
LinearFilter используется по умолчанию и возвращает средневзвешенное значение четырех элементов текстуры, которые ближе всего к указанным координатам текстуры, и может включать элементы, обернутые или повторенные из других частей текстуры, в зависимости от значений wrapS и wrapT, а также от точного отображения.
v3d.NearestFilter
v3d.NearestMipmapNearestFilter
v3d.NearestMipmapLinearFilter
v3d.LinearFilter
v3d.LinearMipmapNearestFilter
v3d.LinearMipmapLinearFilter
Для использования со свойством minFilter текстуры, они определяют функцию минимизации текстуры, которая используется всякий раз, когда пиксель, на который наносится текстура, отображается на область, превышающую один элемент текстуры (тексель).
В дополнение к NearestFilter и LinearFilter для минификации можно использовать следующие четыре функции:
NearestMipmapNearestFilter выбирает мипмапу, наиболее точно соответствующую размеру текстурируемого пикселя, и использует критерий NearestFilter (ближайший к центру пикселя тексель) для получения значения текстуры.
NearestMipmapLinearFilter выбирает два отображения, которые наиболее точно соответствуют размеру текстурируемого пикселя, и использует критерий NearestFilter для получения значения текстуры из каждого отображения. Окончательное значение текстуры является средневзвешенным значением этих двух значений.
LinearMipmapNearestFilter выбирает мипмапу, наиболее точно соответствующую размеру текстурируемого пикселя, и использует критерий LinearFilter (средневзвешенное значение четырех текселей, наиболее близких к центру пикселя) для получения значения текстуры.
LinearMipmapLinearFilter используется по умолчанию и выбирает два отображения, которые наиболее точно соответствуют размеру текстурируемого пикселя, и использует критерий LinearFilter для получения значения текстуры из каждого отображения. Окончательное значение текстуры является средневзвешенным значением этих двух значений.
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 по умолчанию.
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 для деталей.
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 тем, как выполняется альфа-сжатие.
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 пикселя.
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) расширения.
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.
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.
О том как получить исходный код этого модуля читайте тут.