Three.js

From three.js

Константы

Анимационные константы

Цикличные режимы (loop modes)

однократное воспроизведение клипа');" onmouseout="hide()">THREE.LoopOnce

клип проигрывается выбранное количество
раз (указанное в параметре repetitions),
всякий раз переходя с конца клипа
непосредственно на его начало');" onmouseout="hide()">THREE.LoopRepeat

воспроизводится выбранное количество раз
(указанное в параметре repetitions),
проигрывая его поочередно вперед и назад');" onmouseout="hide()">THREE.LoopPingPong

Режимы интерполяции (interpolation modes)

THREE.InterpolateDiscrete
THREE.InterpolateLinear
THREE.InterpolateSmooth

Режимы окончания (ending modes)

THREE.ZeroCurvatureEnding
THREE.ZeroSlopeEnding
THREE.WrapAroundEnding

Исходники



Константы ядра

Номер версии (revision number)

THREE.REV
Номер текущей версии three.js.

Кнопки мышки (mouse buttons)

THREE.MOUSE.LEFT
THREE.MOUSE.MIDDLE
THREE.MOUSE.RIGHT

Исходники



Константы настраиваемых уравнений смешивания

Пример

materials / blending / custom

Применение

Константы работают со всеми типами материалов. Вначале устанавливается режим смешивания материалов (THREE.CustomBlending), затем устанавливается желаемые уравнение смешивания (Blending Equation), исходный фактор (Source Factor) и целевой фактор (Destination Factor).
var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
material.blending = THREE.CustomBlending;
material.blendEquation = THREE.AddEquation; // по умолчанию
material.blendSrc = THREE.SrcAlphaFactor; // по умолчанию
material.blendDst = THREE.OneMinusDstAlphaFactor; // по умолчанию

Уравнения смешивания (blending equations)

THREE.AddEquation
THREE.SubtractEquation
THREE.ReverseSubtractEquation
THREE.MinEquation
THREE.MaxEquation

Исходные факторы (source factors)

THREE.ZeroFactor
THREE.OneFactor
THREE.SrcColorFactor
THREE.OneMinusSrcColorFactor
THREE.SrcAlphaFactor
THREE.OneMinusSrcAlphaFactor
THREE.DstAlphaFactor
THREE.OneMinusDstAlphaFactor
THREE.DstColorFactor
THREE.OneMinusDstColorFactor
THREE.SrcAlphaSaturateFactor

Целевые факторы (destination factors)

Все исходные факторы работают и как целевые, за исключением THREE.SrcAlphaSaturateFactor.

Исходники



Константы режима рисования

Это действующие значения для свойства Mesh.drawMode, и управляют тем, как список вершин будет интерпретирован после отправки в графический процессор (GPU).
Обратите внимание, что это все работает только когда Mesh.geometry является BufferGeometry. Изменение констант, когда Mesh.geometry является Geometry, не окажет никакого влияния.

Режимы рисования (draw modes)

THREE.TrianglesDrawMode
Этот режим устанавливается по умолчанию и приводит к тому, что каждые три последовательные вершины (v0, v1, v2), (v2, v3, v5), ... будут интерпретированы как отдельный треугольник.
Если число вершин не кратно 3, избыточные вершины игнорируются.
THREE.TriangleStripDrawMode
Этот режим приведет к последовательности треугольников, соединенных в ленту, представленную как (v0, v1, v2), (v2, v1, v3), (v2, v3, v4), ... так что каждый предыдущий треугольник имеет две общие вершины с предыдущим треугольником.
THREE.TriangleFanDrawMode
В результате этого режима появятся последовательности треугольников, в каждом из которых имеется одна общая вершина (подобно лопастям вентилятора - fan), представленные как (v0, v1, v2), (v0, v2, v3), (v0, v3, v4), и т.д.
Примечание: Этот режим не поддерживается DirectX10. (Вот DirectX10 на русском языке.) Браузеры Chrome и Firefox представляют WebGL на Windows при помощи ANGLE, преобразовывая внутри себя этот режим в поддерживаемый, что, скорее всего приведет к снижению производительности этих браузеров.
Примечание переводчика: ANGLE (Almost Native Graphics Layer Engine - практически встроенный движок графического слоя, а перевод самой аббревиатуры ANGLE - угол) это графический движок слоя абстракций, разработанный компанией Google, с открытым исходным кодом под лицензией BSD. Этот API в основном предназначен для обеспечения высокопроизводительной совместимости OpenGL с компьютерами Windows и веб-браузерами вроде Chromium, путем перевода вызовов OpenGL в Direct3D, который гораздо лучше поддерживается драйверами. Для ANGLE существует два внутренних визуализатора: самый старый использует Direct3D 9.0c, в то время как новый использует Direct3D 11.

из вышеприведенной статьи англ. Википедии, перевод мой.

Применение

var geometry = new THREE.Geometry();
geometry.vertices.push( new THREE.Vector3( -10, 10, 0 ), new THREE.Vector3( -10, -10, 0 ), new THREE.Vector3( 10, -10, 0 ), ... ); geometry.faces.push( new THREE.Face3( 0, 1, 2 ), ... );
var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
var mesh = new THREE.Mesh( geometry, material ); mesh.drawMode = THREE.TrianglesDrawMode; // default (по умолчанию)
scene.add( mesh );

Исходники


Константы материалов

Эти константы определяют свойства, общие для всех типов материала, за исключением операций комбинирования текстур (Texture Combine Operations), которые применяются только к MeshBasicMaterial, MeshLambertMaterial и MeshPhongMaterial.

Сторона (side)

THREE.FrontSide
THREE.BackSide
THREE.DoubleSide
Эти константы определяют какая сторона грани будет отображаться - передняя (front), задняя (back) или обе. По умолчанию используется FrontSide.

Цвета (colors)

THREE.NoColors
THREE.FaceColors
THREE.VertexColors
NoColors используется по умолчанию и применяет ко всем граням (поверхностям) цвет материала.
FaceColors окрашивает грани (т.е. ячейки каркаса) в соответствии со значением цвета color каждой треугольной грани Face3.
VertexColors окрашивает грани в соответствии со значением vertexColors каждой из вершин грани Face3. Это массив из трех значений color, по одному для каждой вершины грани.
Смотрите пример geometry / colors.

Режим смешивания (blending mode)

THREE.NoBlending
THREE.NormalBlending
THREE.AdditiveBlending
THREE.SubtractiveBlending
THREE.MultiplyBlending
THREE.CustomBlending
Эти константы управляют исходным и целевым уравнениями смешивания для каналов цвета (RGB) и канала прозрачности (Alpha) материала, отправляемых WebGLRenderer'у для использования в WebGL.
NormalBlending используется по умолчанию.
Обратите внимание, что CustomBlending должен быть установлен для использования Custom Blending Equations.
Смотрите пример materials / blending.

Режим глубины (depth mode)

THREE.NeverDepth
THREE.AlwaysDepth
THREE.LessDepth
THREE.LessEqualDepth
THREE.GreaterEqualDepth
THREE.GreaterDepth
THREE.NotEqualDepth
Эти константы определяют функцию, используемую материалом для сравнения значения входящего пиксела глубины (т.е. значения по оси Z) с текущим значением буфера глубины. Если результатом этого сравнения будет значение true, пиксель будет прорисован.


never depth - никогда нет глубины')" onmouseout="hide()">NeverDepth
никогда не возвращает значение true.


always depth - глубина есть всегда')" onmouseout="hide()">AlwaysDepth
всегда возвращает значение true.


less depth - ме́ньшая глубина')" onmouseout="hide()">LessDepth
возвращает значение true, если значение входящего пиксела Z-глубины меньше значения текущего буфера Z-глубины.


less equal depth - глубина меньше или равна')" onmouseout="hide()">LessEqualDepth
возвращает значение true, если значение входящего пиксела Z-глубины меньше или равно значению текущего буфера Z-глубины. Эта константа применяется по умолчанию.


greater equal depth - глубина больше или равна')" onmouseout="hide()">GreaterEqualDepth
, если значение входящего пиксела Z-глубины больше или равно значению текущего буфера Z-глубины.


greater depth - бо́льшая глубина')" onmouseout="hide()">GreaterDepth
возвращает значение true, если значение входящего пиксела Z-глубины меньше или равно значению текущего буфера Z-глубины.


not equal depth - нет равной глубины')" onmouseout="hide()">NotEqualDepth
возвращает значение true, если значение входящего пиксела Z-глубины равно значению текущего буфера Z-глубины.

Операции комбинирования (совмещения) текстур

THREE.MultiplyOperation
THREE.MixOperation
THREE.AddOperation
Эти операции определяют каков будет результат при совмещении цвета поверхности с картой цвета среды (если существует), для таких материалов как MeshBasicMaterial, MeshLambertMaterial и MeshPhongMaterial.
MultiplyOperation применяется по умолчанию и перемножает карту цвета среды и цвет поверхности.
MixOperation при смешивании двух цветов используется отражение.
AddOperation складывает два цвета.

Исходники


Константы WebGLRenderer

Режимы выбраковки граней (cull face modes)

THREE.CullFaceNone
THREE.CullFaceBack
THREE.CullFaceFront
THREE.CullFaceFrontBack
Эти константы используются методом setFaceCulling WebGLRenderer'а.
CullFaceNone отключает выбраковку граней.
CullFaceBack отбрасываются задние грани (эта константа применяется по умолчанию).
CullFaceFront отбрасываются передние грани.
CullFaceFrontBack отбрасываются обе грани, и передняя и задняя.

Направление передней грани (front face direction)

THREE.FrontFaceDirectionCW
THREE.FrontFaceDirectionCCW
Эти константы используются методом setFaceCulling WebGLRenderer'а.
FrontFaceDirectionCW устанавливает порядок следования многоугольников (полигонов) по часовой стрелке.
FrontFaceDirectionCCW устанавливает порядок следования многоугольников (полигонов) против часовой стрелки (значение по умолчанию).

Типы тени (shadow types)

THREE.BasicShadowMap
THREE.PCFShadowMap
THREE.PCFSoftShadowMap
Эти константы определяют свойство shadowMap.type WebGLRenderer'а.
BasicShadowMap дает нефильтрованные карты теней - самые быстрые, но и самые низкокачественные.

тестов на затенение в окрестностях искомого фрагмента и для
затенения используется среднее значение этих тестов, таким
образом, граница тени будет более «мягкой».')"> PCFShadowMap
фильтры теневых карт используют алгоритм Percentage-Closer Filtering - PCF (значение по умолчанию).

реалистичными и приближенными к жизни. Очертания теней
растворяются по мере удаления от объекта, отбрасывающего
тень. Использование технологии PCSS позволяет сделать
очертания теней естественными и избежать «лесенок».')"> PCFSoftShadowMap
фильтры теневых карт используют алгоритм Percentage-Closer Soft Shadows (PCSS).

Отображение тона цвета (tone mapping)

HDR (High Dynamic Range) — технология широкодиапазонного представления цвета.... читать далее
До недавнего времени стандартно цвет в компьютерной графике представлялся 32 битами, по 8 бит на компонент (красный, зелёный, синий и альфа). Таким образом, каждая цветовая компонента может принимать 256 различных оттенков. Практика показала, что при таком количестве оттенков человеческий глаз не способен различить погрешности отображения. Проще говоря, такой точности хватало.
Однако теперь, в связи с появлением более сложных технологий освещения, появилась необходимость большей точности вычислений. В результате появилась технология HDR. Суть её заключается в использовании 16 бит на компонент (исключение составляет только самый конец конвейера — экран, где используется по-прежнему 8-битная точность, для реализации эффекта HDR применяют 16-битные текстуры специального формата). Кроме того, яркость компонента представляется не числом с фиксированной точкой, а с плавающей, в результате чего появляется возможность работать с очень большими и очень малыми значениями при довольно высокой точности. В итоге, становится возможным работать с такими эффектами, как световые блики, ослепление ярким светом и пр.
Чаще всего термин HDR употребляется в отношении получения, хранения и обработки растровых изображений. Широко используемые на сегодняшний день цифровые технологии исторически основаны на 8-битных целочисленных форматах представления и обработки данных, что даёт весьма узкий динамический диапазон, часто называемый SDR (англ. Standard Dynamic Range) или LDR (англ. Low Dynamic Range). Для сравнения, отношение наиболее яркого к наименее яркому (но ещё не чёрному) цветам для sRGB составляет порядка 3 000:1, в то время как реальные сцены часто имеют динамический диапазон яркости в 1 000 000:1 и выше, при этом и в тенях и в свете глаз способен (из-за световой адаптации к яркости) различить детали. Применение техники HDR позволяет работать с полным диапазоном яркости сцены, устраняя исторические ограничения.
Отображение тонов цвета (tone mapping) - это процесс преобразования диапазона яркостей HDR к LDR диапазону, отображаемому устройством вывода, например, монитором или принтером, так как вывод HDR изображений на них потребует преобразования динамического диапазона и цветового охвата модели HDR в соответствующий динамический диапазон LDR, чаще всего модель RGB. Ведь диапазон яркости, представленный в HDR, очень широк, это несколько порядков абсолютного динамического диапазона единовременно, в одной сцене. А диапазон, который можно воспроизвести на привычных устройствах вывода (мониторах, телевизорах), составляет лишь около двух порядков динамического диапазона.
Преобразование из HDR в LDR и называется
закон преобразования яркости пикселей может быть разным
для различных частей изображения (имитация градиентного
фильтра). Существуют разные алгоритмы с разными
дополнительными эффектами и возможностями по управлению
пользователем этим процессом. В результате применения
алгоритмов могут образовываться ореолы в районе границ
между светлыми и тёмными областями, тёмные по природе
объекты могут стать неестественно светлыми.')" onmouseout="hide()">отображением тонов (tone mapping)
, оно выполняется с потерями и имитирует свойства человеческого зрения.
THREE.NoToneMapping
THREE.LinearToneMapping
THREE.ReinhardToneMapping
THREE.Uncharted2ToneMapping
THREE.CineonToneMapping
Эти константы определяют свойство toneMapping WebGLRenderer'а. Они используются для приведения внешнего вида изображения в расширенном динамическом диапазоне (high dynamic range - HDR) к возможному отображению их в низком динамическом диапазоне (low dynamic range - LDR) стандартного компьютерного монитора или экрана мобильного устройства.
NoToneMapping отключает отображение тонов.
Значением по умолчанию является LinearToneMapping.
Смотрите пример отображения тонов.

Исходники


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

Режимы картирования (mapping modes)

THREE.UVMapping
THREE.CubeReflectionMapping
THREE.CubeRefractionMapping
THREE.EquirectangularReflectionMapping
THREE.EquirectangularRefractionMapping
THREE.SphericalReflectionMapping
THREE.CubeUVReflectionMapping
THREE.CubeUVRefractionMapping
Эти константы определяют режим наложения текстуры на поверхность объекта.
Значением по умолчанию является THREE.UVMapping, при которой текстура накладывается на поверхность объекта в соответствии с координатами UV сетки (mesh).
Остальные константы определяют типы картирования окружающей обстановки.
CubeReflectionMapping и CubeRefractionMapping предназначены для использования с CubeTexture, состоящей из шести текстур, по одной на каждую грань куба. Для CubeTexture значением по умолчанию является CubeReflectionMapping.
EquirectangularReflectionMapping и EquirectangularRefractionMapping предназначены для использования с картой равнопромежуточной проекции. Также она называется картой (lat-long map) с долготой (longitude) и широтой (latitude), равнопромежуточная текстура представляет вид на 360 градусов по горизонтальной оси и на 180 градусов по вертикальной оси, с верхним и нижним краями изображения соответствующими северному и южному полюсам отображаемой сферы.
Вот статьи Википедии Равнопромежуточная проекция и Equirectangular projection.
SphericalReflectionMapping предназначена для использования с картой сферического отражения, такой, какая может быть получена путем обрезки фотографии зеркального шара. Сферические карты будут отображаться лицевой стороной к камере, независимо от её положения относительно объекта с кубическим картированием или поверхности.
Смотрите пример materials / envmaps.

Режимы укладки текстур (wrapping modes)

THREE.RepeatWrapping
THREE.ClampToEdgeWrapping
THREE.MirroredRepeatWrapping
Эти константы определяют свойства текстур wrapS и wrapT, которые устанавливают стыковку текстур по горизонтали и вертикали.
С константой RepeatWrapping текстура будет попросту повторяться до бесконечности.
По умолчанию применяется константа ClampToEdgeWrapping. Последний пиксел текстуры растягивается до края сетки (mesh).
С константой MirroredRepeatWrapping текстура будет повторяться бесконечно, зеркально отображаясь при каждом повторе.

Фильтры увеличения (magnification filters)



nearest filter - ближайший фильтр')" onmouseout="hide()">THREE.NearestFilter


linear filter - линейный фильтр')" onmouseout="hide()">THREE.LinearFilter
Эти константы предназначены для свойства текстуры magFilter, они определяют функцию увеличения текстуры, используемую когда пиксель существующей текстуры отображает область меньше или равную одному элементу текстуры (текселю).


nearest filter - ближайший фильтр')" onmouseout="hide()">NearestFilter
возвращает значение элемента текстуры, которое является ближайшим (по манхэттенскому расстоянию - Manhattan distance) к указанным координатам текстуры.


linear filter - линейный фильтр')" onmouseout="hide()">LinearFilter
является значением по умолчанию и возвращает средневзвешенное значение четырех текстурных элементов, наиболее близких к указанным координатам текстуры, и может включать элементы пристыкованные или повторяющиеся из других частей текстуры, в зависимости от значений свойств текстуры wrapS и wrapT и от точности отображения.

Фильтры минимизации (minification filters)



nearest filter - ближайший фильтр')" onmouseout="hide()">THREE.NearestFilter


nearest mipmap nearest filter - ближайшая mip-карта, ближайший фильтр')" onmouseout="hide()">THREE.NearestMipMapNearestFilter


nearest mipmap linear filter - ближайшая mip-карта, линейный фильтр')" onmouseout="hide()">THREE.NearestMipMapLinearFilter


linear filter - линейный фильтр')" onmouseout="hide()">THREE.LinearFilter


linear mipmap nearest filter - линейная mip-карта, ближайший фильтр')" onmouseout="hide()">THREE.LinearMipMapNearestFilter


linear mipmap linear filter - линейная mip-карта, линейный фильтр')" onmouseout="hide()">THREE.LinearMipMapLinearFilter
Эти константы предназначены для использования со свойством текстуры minFilter, они определяют функцию минимизации текстуры, которая используется всякий раз, когда пиксел существующей текстуры отображает область больше, чем один элемент текстуры (тексель).
В дополнение к NearestFilter и LinearFilter для минимизации можно использовать следующие четыре функции:


nearest mipmap nearest filter - ближайшая mip-карта, ближайший фильтр')" onmouseout="hide()">THREE.NearestMipMapNearestFilter
выбирает mip-карту, которая наиболее точно соответствует размеру пиксела существующей текстуры и использует константу NearestFilter (тексель, ближайший к центру пиксела) в качестве условия для получения значения текстуры.


nearest mipmap linear filter - ближайшая mip-карта, линейный фильтр')" onmouseout="hide()">NearestMipMapLinearFilter
выбирает две mip-карты, которые наиболее точно соответствуют размеру пиксела существующей текстуры и использует константу NearestFilter в качестве условия для получения значения текстуры от каждой mip-карты. Конечным значением текстуры будет средневзвешенное от этих двух значений.


linear mipmap nearest filter - линейная mip-карта, ближайший фильтр')" onmouseout="hide()">LinearMipMapNearestFilter
выбирает mip-карту, которые наиболее точно соответствующую размеру пиксела существующей текстуры и использует константу LinearFilter (средневзвешенное значение от четырех текселей, ближайших к центру пиксела) в качестве условия для получения значения текстуры.


linear mipmap linear filter - линейная mip-карта, линейный фильтр')" onmouseout="hide()">LinearMipMapLinearFilter
является значением по умолчанию и выбирает две mip-карты, которые наиболее близко соответствуют размеру пиксела существующей текстуры, и использует константу LinearFilter в качестве условия для получения значения текстуры от каждой mip-карты. Конечным значением текстуры будет средневзвешенное значение от этих двух значений.
Смотрите пример materials / texture / filters.

Типы

THREE.UnsignedByteType
THREE.ByteType
THREE.ShortType
THREE.UnsignedShortType
THREE.IntType
THREE.UnsignedIntType
THREE.FloatType
THREE.HalfFloatType

в шестнадцатиразрядное двоичное число
по четыре разряда на каждое из значений')" onmouseout="hide()">THREE.UnsignedShort4444Type

в шестнадцатиразрядное двоичное число
по пять разрядов на каждое из значений цвета
и один разряд для значения прозрачности')" onmouseout="hide()">THREE.UnsignedShort5551Type

двоичное число по пять разрядов на красный и синий
цвета и шесть разрядов на зеленый цвет')" onmouseout="hide()">THREE.UnsignedShort565Type

в 32-битное число, 24 бита на значение
глубины и 8 бит на значение трафарета')" onmouseout="hide()">THREE.UnsignedInt248Type
Для использования со свойством текстуры type, которое должно соответствовать правильному формату.
Значением по умолчанию является UnsignedByteType.
Для типов упакованных данных THREE.UnsignedShort4444Type, THREE.UnsignedShort5551Type или THREE.UnsignedShort565Type, все компоненты цвета одного текселя можно рассматривать как битовые поля внутри целочисленного элемента в формате Uint16Array.
Это метод хранения цвета текселя (пикселя текстуры). Описываемые битовые поля связаны с числами, определяющими количество бит каждого канала цвета.
Цифры 4444 в названии типа означают число бит для каждого из каналов цвета и канала прозрачности в формате RGBA - по четыре бита на каждый канал.
 16-разрядное беззнаковое число
|R|R|R|R|G|G|G|G|B|B|B|B|A|A|A|A|
 красный|зеленый| синий | альфа
В типе 5551 по пять бит отведено на каждый из каналов цвета и один бит на канал прозрачности (т.е. альфа-канал может быть либо 100%, либо 0% или 1 или 0).
 16-разрядное беззнаковое число
|R|R|R|R|R|G|G|G|G|G|B|B|B|B|B|A|
| красный | зеленый |  синий  |альфа
У типа 565 нет альфа-канала, но имеется дополнительный бит в канале зеленого цвета.
 16-разрядное беззнаковое число
|R|R|R|R|R|G|G|G|G|G|G|B|B|B|B|B|
  красный |  зеленый  |  синий
Тип THREE.UnsignedInt248Type это упаковка значений глубины и трафарета в 32-битное целое число без знака. Цифры 248 означают, что на значение глубины (depth) отводится 24 бита, а на значение трафарета (stencil) - 8 бит.

Форматы



alpha format - формат канала
прозрачности (альфа-канала)')" onmouseout="hide()">THREE.AlphaFormat


RGB format - формат компонентов
цвета RGB')" onmouseout="hide()">THREE.RGBFormat


RGBA format - формат компонентов
цвета RGB и канала прозрачности
(альфа-канала)')" onmouseout="hide()">THREE.RGBAFormat


luminance format - формат яркости')" onmouseout="hide()">THREE.LuminanceFormat


luminance alpha format - формат
яркости и прозрачности (альфа-канал)')" onmouseout="hide()">THREE.LuminanceAlphaFormat


RGBE format - формат компонентов
цвета RGB (на каждый цвет отводится
по одному байту) и канала показателя
степени (exponent) - также один байт')" onmouseout="hide()">THREE.RGBEFormat


depth format - формат глубины')" onmouseout="hide()">THREE.DepthFormat


depth stencil format - формат
глубины и трафарета')" onmouseout="hide()">THREE.DepthStencilFormat
Предназначены для использования со свойством format, они определяют как элементы двумерной текстуры (тексели), считываются шейдерами.


alpha format - формат канала
прозрачности (альфа-канала)')" onmouseout="hide()">AlphaFormat
отбрасывает компоненты цвета (red - красный, green - зеленый и blue - синий) и считывает только канал прозрачности (альфа-канал).
Значением свойства текстуры type должна быть константа UnsignedByteType.


RGB format - формат компонентов
цвета RGB')" onmouseout="hide()">RGBFormat
отбрасывает компонент альфа-канала (канала прозрачности) и считывает компоненты цвета (red - красный, green - зеленый и blue - синий).
Значением свойства текстуры type должна быть константа UnsignedByteType или
двоичное число по пять разрядов на красный и синий
цвета и шесть разрядов на зеленый цвет')" onmouseout="hide()">UnsignedShort565Type
.


RGBA format - формат компонентов
цвета RGB и канала прозрачности
(альфа-канала)')" onmouseout="hide()">RGBAFormat
применяется по умолчанию и считывает компоненты цвета (red - красный, green - зеленый и blue - синий) и значение альфа-канала (канала прозрачности).
Значением свойства текстуры type должна быть константа UnsignedByteType,
в шестнадцатиразрядное двоичное число
по четыре разряда на каждое из значений')" onmouseout="hide()">UnsignedShort4444Type
или
в шестнадцатиразрядное двоичное число
по пять разрядов на каждое из значений цвета
и один разряд для значения прозрачности')" onmouseout="hide()">UnsignedShort5551Type
.


luminance format - формат яркости')" onmouseout="hide()">LuminanceFormat
считывает каждый элемент как отдельный компонент яркости. Далее он преобразуется в число с плавающей запятой, фиксируется в диапазоне от 0 до 1, затем собирается в элемент RGBA, помещая значение яркости в каналах красного, зеленого и синего цветов и присоединяет 1.0 к альфа-каналу.
Значением свойства текстуры type должна быть константа UnsignedByteType.


luminance alpha format - формат
яркости и прозрачности (альфа-канал)')" onmouseout="hide()">LuminanceAlphaFormat
считывает каждый элемент как пару яркость/прозрачность. Происходит тот же процесс что и у THREE.LuminanceFormat, за исключением того, что альфа-канал может иметь значения отличные от 1.0.
Значением свойства текстуры type должна быть константа UnsignedByteType.


RGBE format - формат компонентов
цвета RGB (на каждый цвет отводится
по одному байту) и канала показателя
степени (exponent) - также один байт')" onmouseout="hide()">RGBEFormat
идентичен с форматом

RGBA format - формат компонентов
цвета RGB и канала прозрачности
(альфа-канала)')" onmouseout="hide()">THREE.RGBAFormat
.


depth format - формат глубины')" onmouseout="hide()">DepthFormat
считывает каждый элемент как отдельное значение глубины. Далее оно преобразуется в число с плавающей запятой, фиксируется в диапазоне от 0 до 1. Эта константа является значением по умолчанию для DepthTexture.
Значением свойства текстуры type должна быть константа UnsignedIntType или UnsignedShortType.


depth stencil format - формат
глубины и трафарета')" onmouseout="hide()">DepthStencilFormat
считывает каждый элемент как пару из значений глубины и трафарета. Компонент глубины этой пары интерпретируется как константа DepthFormat. Компонент трафарета интерпретируется на основе внутреннего формата depth + stencil.
Значением свойства текстуры type должна быть константа
в 32-битное целое число без знака,
24 бита на значение глубины и 8 бит
на значение трафарета')" onmouseout="hide()">UnsignedInt248Type
.
Обратите внимание, что текстура должна иметь правильный тип, как указано выше. Подробности смотрите на этой странице.

Форматы сжатия текстур DDS / ST3C Compressed Texture Formats

S3 Texture Compression – это формат сжатия графических данных с потерями, с фиксированным уровнем сжатия.... читать далее
Его особенности делают этот формат идеальным для сжатия текстур, используемых в 3D-приложениях, рассчитанных на использование графического ускорителя. Интеграция S3TC с Microsoft DirectX 6.0 и OpenGL 1.3 способствовала его широкому распространению. Существует как минимум 5 различных вариантов формата S3TC (от DXT1 до DXT5).
DXT1 обеспечивает наиболее сильное сжатие. Каждый входной 16-пиксельный блок конвертируется в 64-битный блок, состоящий из двух 16-битных RGB 5:6:5 цветовых значений и 2-х битной таблицы подстановок размером 4x4. Поддержка прозрачности ограничена одним цветом (1-битная прозрачность).
DXT3 конвертирует каждый блок из 16 пикселей в 128 бит, 64 бита приходятся на данные альфа-канала, 64 – на цветовую информацию. DXT3 очень хорошо подходит для изображений или текстур с резкими переходами между прозрачными и непрозрачными областями. Однако если градаций прозрачности нет, а прозрачные участки в изображении имеются, стоит рассмотреть использование DXT1.
DXT5, как и DXT3, конвертирует каждый блок из 16 пикселей в 128 бит, 64 бита приходятся на данные альфа-канала, 64 – на цветовую информацию. Однако, в отличие от DXT3, DXT5 подходит для изображений или текстур с плавными переходами между прозрачными и непрозрачными областями.
Преимущества:
Размер файла значительно меньше аналогичного PNG-файла.
Достойное качество, низкий процент артефактов в виде полосок, связанных с наложением цветов.
Хорошая скорость кодирования и декодирования.
Аппаратное ускорение на множестве GPU. На настольных системах поддерживается практически всеми решениями, постепенно распространяется и на платформе Android.
Недостатки:
Качество ниже, чем у PNG (S3TC – это формат сжатия изображений с потерями информации).
Поддерживается не на всех Android-устройствах.


сжатие компонентов цвета RGB
в формате S3TC (вариант DXT1)')" onmouseout="hide()">THREE.RGB_S3TC_DXT1_Format


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате S3TC (вариант DXT1)')" onmouseout="hide()">THREE.RGBA_S3TC_DXT1_Format


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате S3TC (вариант DXT3)')" onmouseout="hide()">THREE.RGBA_S3TC_DXT3_Format


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате S3TC (вариант DXT5)')" onmouseout="hide()">THREE.RGBA_S3TC_DXT5_Format
Предназначены для использования со свойством format CompressedTexture, при этом требуется поддержка расширения WEBGL_compressed_texture_s3tc.
С поддержкой этого расширения имеется четыре S3TC формата.


сжатие компонентов цвета RGB
в формате S3TC (вариант DXT1)')" onmouseout="hide()">RGB_S3TC_DXT1_Format
- вариант сжатия изображения DXT1 в формате RGB.


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате S3TC (вариант DXT1)')" onmouseout="hide()">RGBA_S3TC_DXT1_Format
- вариант сжатия изображения DXT1 в формате RGB с простейшим (вкл/выкл) значением альфа-канала.


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате S3TC (вариант DXT3)')" onmouseout="hide()">RGBA_S3TC_DXT3_Format
- вариант сжатия изображения DXT3 в формате RGBA. По сравнению с 32-битной RGBA текстурой, в этом варианте формата предполагается четырехкратное сжатие.


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате S3TC (вариант DXT5)')" onmouseout="hide()">RGBA_S3TC_DXT5_Format
- вариант сжатия изображения DXT5 в формате RGBA. Данный вариант формата также предполагает четырехкратное сжатие, но от варианта DXT3 отличается способом сжатия альфа-канала.

Форматы сжатия текстур PVRTC (PowerVR Texture Compression)

PowerVR Texture Compression – это формат компрессии графических данных с потерями, с фиксированным уровнем сжатия,... читать далее
который используется, преимущественно, в устройствах Imagination Technology PowerVR MBX, SGX и Rogue. Он применяется в качестве стандартного метода сжатия изображений в iPhone, iPod, iPad.
В отличие от ETC и S3TC, алгоритм PVRTC не работает с фиксированными блоками пикселей. В нём используется билинейное увеличение и смешивание с низкой точностью двух изображений низкого разрешения. В дополнение к уникальному процессу сжатия, PVRTC поддерживает формат RGBA (с прозрачностью) и для варианта 2-bpp (2 бита на пиксель), и для варианта 4-bpp (4 бита на пиксель). Преимущества:
Поддержка альфа-каналов.
Поддержка RGBA для варианта 2-bpp (2 бита на пиксель) и для варианта 4-bpp (4 бита на пиксель).
Размер файлов намного меньше, чем у PNG.
Поддержка аппаратного ускорения на GPU PoverVR.
Недостатки:
Качество не так высоко, как при использовании PNG (PVRTC – это формат сжатия изображений с потерями).
PVRTC поддерживается только на аппаратном обеспечении PoverVR.
Обеспечивается поддержка квадратных POT-текстур, то есть текстур, ширина и высота которых являются степенью числа 2, хотя в некоторых случаях имеется поддержка прямоугольных текстур.
Сжатие текстур в этот формат может быть медленным.


сжатие компонентов цвета RGB в формате PVRTC,
в 4-битном режиме')" onmouseout="hide()">THREE.RGB_PVRTC_4BPPV1_Format


сжатие компонентов цвета RGB в формате PVRTC,
в 2-битном режиме')" onmouseout="hide()">THREE.RGB_PVRTC_2BPPV1_Format


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате PVRTC, в 4-битном режиме')" onmouseout="hide()">THREE.RGBA_PVRTC_4BPPV1_Format


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате PVRTC, в 2-битном режиме')" onmouseout="hide()">THREE.RGBA_PVRTC_2BPPV1_Format
Предназначены для использования со свойством format CompressedTexture, при этом требуется поддержка расширения WEBGL_compressed_texture_pvrtc.
Формат сжатия PVRTC обычно доступен только на мобильных устройствах с наборами микросхем PowerVR, в основном это устройства Apple.
С поддержкой этого расширения имеется четыре PVRTC формата.


сжатие компонентов цвета RGB в формате PVRTC,
в 4-битном режиме')" onmouseout="hide()">RGB_PVRTC_4BPPV1_Format
- сжатие компонентов цвета RGB в 4-битном режиме. Один блок на каждые 4×4 пикселей.


сжатие компонентов цвета RGB в формате PVRTC,
в 2-битном режиме')" onmouseout="hide()">RGB_PVRTC_2BPPV1_Format
- сжатие компонентов цвета RGB в 2-битном режиме. Один блок на каждые 8×4 пикселей.


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате PVRTC, в 4-битном режиме')" onmouseout="hide()">RGBA_PVRTC_4BPPV1_Format
- сжатие компонентов цвета RGB и канала прозрачности (альфа-канала) в 4-битном режиме. Один блок на каждые 4×4 пикселей.


сжатие компонентов цвета RGB и
канала прозрачности (альфа-канала)
в формате PVRTC, в 2-битном режиме')" onmouseout="hide()">RGBA_PVRTC_2BPPV1_Format
сжатие компонентов цвета RGB и канала прозрачности (альфа-канала) в 2-битном режиме. Один блок на каждые 8×4 пикселей.

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

ETC - сокращение от Ericsson Texture Compression... читать далее
– это формат сжатия текстур, который оперирует блоками пикселей размером 4x4. Изначально Khronos использовал ETC как стандартный формат для Open GL ES 2.0 (эта версия ещё называется ETC1). В результате этот формат доступен практически на всех Android-устройствах. С выходом OpenGL ES 3.0 в качестве нового стандарта использован формат ETC2 – переработанная версия ETC1. Основное различие между этими двумя стандартами заключается в алгоритме, который оперирует пиксельными группами. Улучшения в алгоритме привели к более высокой точности вывода мелких деталей изображений. Как результат, качество изображений улучшилось, а размер файлов – нет.
ETC1 и ETC2 поддерживают сжатие 24-битных RGB-данных, но они не поддерживают сжатие изображений с альфа-каналом.


RGB_ETC1_Format - формат ETC1 (сжатия компонентов цвета) RGB')" onmouseout="hide()">THREE.RGB_ETC1_Format
Предназначена для использования со свойством format CompressedTexture, при этом требуется поддержка расширения WEBGL_compressed_texture_etc1.

Кодирование



linear encoding - линейное кодирование')" onmouseout="hide()">LinearEncoding


sRGB encoding - кодирование sRGB')" onmouseout="hide()">THREE.sRGBEncoding


gamma encoding - гамма-кодирование')" onmouseout="hide()">THREE.GammaEncoding


RGBE encoding - кодирование RGBE')" onmouseout="hide()">THREE.RGBEEncoding


RGBM7 encoding - кодировка RGBM7')" onmouseout="hide()">THREE.LogLuvEncoding


')" onmouseout="hide()">THREE.RGBM7Encoding


RGBM16 encoding - кодировка RGBM16')" onmouseout="hide()">THREE.RGBM16Encoding


RGBD encoding - кодировка RGBD')" onmouseout="hide()">THREE.RGBDEncoding


basic depth packing -
базовая упаковка глубины')" onmouseout="hide()">THREE.BasicDepthPacking


RGBA depth packing -
упаковка глубины компонентов
цвета RGB и прозрачности A')" onmouseout="hide()">THREE.RGBADepthPacking
Для использования со свойством текстуры encoding.
Если тип кодирования изменяется после того, как текстура уже была использована материалом, нужно установить свойство Material.needsUpdate как true, чтобы пересобрать (перекомпилировать) материал.
Значением по умолчанию является

linear encoding - линейное кодирование')" onmouseout="hide()">LinearEncoding
. Значения, отличные от данных, действительны только для свойств материала map, envMap и emissiveMap.

Исходники