Эти константы определяют форматы и режимы рендеринга текстур.
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.RGBAFormat
v3d.RGBAIntegerFormat
v3d.LuminanceFormat
v3d.LuminanceAlphaFormat
v3d.DepthFormat
v3d.DepthStencilFormat
Используются для назначения свойства format текстур, они определяют, как элементы двухмерной текстуры, или «тексели», считываются шейдерами.
AlphaFormat отбрасывает красный, зеленый и синий компоненты и считывает только альфа-компонент.
RedFormat отбрасывает зеленый и синий компоненты и считывает только красный компонент.
RedIntegerFormat отбрасывает зеленый и синий компоненты и считывает только красный компонент. Тексели считываются как целые числа, а не с плавающей точкой. (может использоваться только с рендерингом WebGL 2).
RGFormat отбрасывает альфа- и синие компоненты и считывает красную и зеленую компоненты. (может использоваться только с рендерингом WebGL 2).
RGIntegerFormat отбрасывает альфа- и синие компоненты и считывает красную и зеленую компоненты. Тексели считываются как целые числа, а не с плавающей точкой (может использоваться только с рендерингом WebGL 2).
RGBAFormat используется по умолчанию и считывает красный, зеленый, синий и альфа-компоненты.
RGBAIntegerFormat используется по умолчанию и считывает красный, зеленый, синий и альфа-компоненты. Тексели считываются как целые числа, а не с плавающей точкой. (может использоваться только с рендерингом WebGL 2).
LuminanceFormat считывает каждый элемент как один компонент яркости. Затем это значение преобразуется в плавающую точку, ограничивается в диапазоне [0,1], а затем собирается в RGBA-элемент, помещая значение яркости в красный, зеленый и синий каналы и присоединяя 1.0 к альфа-каналу.
LuminanceAlphaFormat считывает каждый элемент как двойное значение яркости/альфа-канала. Происходит тот же процесс, что и для LuminanceFormat, за исключением того, что альфа-канал может иметь значения, отличные от 1.0
.
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. Требуют поддержки расширения 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. Требуется поддержка расширения 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. Требуют поддержки расширения 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
Для назначения свойства CompressedTexture — format. Требуется поддержка расширения WEBGL_compressed_texture_astc.
v3d.RGBA_BPTC_Format
Для назначения свойства CompressedTexture — format. Требуют наличия поддержки расширения EXT_texture_compression_bptc.
v3d.LinearEncoding
v3d.sRGBEncoding
v3d.BasicDepthPacking
v3d.RGBADepthPacking
v3d.LinearDepthPacking
v3d.RGBADistancePacking
v3d.ESMDistancePacking
Для использования со свойством encoding текстуры.
Если тип кодировки изменен после того, как текстура уже использовалась материалом, необходимо установить Material.needsUpdate в true, чтобы материал перекомпилировался.
LinearEncoding по умолчанию. Значения, отличные от этого, действительны только для карты материала, envMap и emissiveMap.
О том как получить исходный код этого модуля читайте тут.