Three.js
From three.js
Материалы
В этом разделе дается описание различных материалов. Их можно представить как некие строительные материалы, вроде балок, стен, кровельного материала и т.д.
Имеется базовый материал, определяющий общие свойства всех материалов и методов работы с ними. Оставшиеся материалы можно разделить на следующие виды: линии, сетки, точки, шейдеры, тень и спрайт.
Material →
LineBasicMaterial - простые линии
LineDashedMaterial - пунктирные линии
Material - базовый материал
MeshBasicMaterial - базовая сетка
MeshDepthMaterial - сетка с прорисовкой глубины
MeshLambertMaterial - матовая сетка с расчетом коэффициента отражения по Ламберту
MeshNormalMaterial - материал отображающий векторы нормалей как цвета в RGB-формате
MeshPhongMaterial - материал для блестящих поверхностей с зеркальными бликами
MeshPhysicalMaterial - расширение MeshStandardMaterial, увеличивающее регулировку способности к отражению
MeshStandardMaterial - стандартная сетка
MeshToonMaterial - сетка с тонировкой
PointsMaterial - матерал точек
RawShaderMaterial - тоже что и ShaderMaterial, но нет автоматического добавления определений встроенных атрибутов и униформов
ShaderMaterial - материал, отображаемый с помощью собственных (заказных) шейдеров.
ShadowMaterial - теневой материал, который может принимать тень, а в остальном полностью прозрачен
SpriteMaterial - материал для спрайтов
LineBasicMaterial
Материал для рисования геометрических фигур в каркасном стиле обычными линиями.Пример
var material = new THREE.LineBasicMaterial( {
color: 0xffffff,
linewidth: 1,
linecap: 'round', // ignored by WebGLRenderer (игнорируется WebGLRenderer'ом)
linejoin: 'round' // ignored by WebGLRenderer (игнорируется WebGLRenderer'ом)
} );
Другие примеры
WebGL / buffergeometry / drawcalls WebGL / buffergeometry / lines WebGL / buffergeometry / lines / indexed WebGL / decals WebGL / geometry / nurbs WebGL / geometry / shapes WebGL / geometry / spline / editor WebGL / interactive / buffergeometry WebGL / interactive / voxelpainter WebGL / lines / colors WebGL / lines / cubes WebGL / lines / dashed WebGL / lines / sphere WebGL / lines / splines WebGL / materials WebGL / physics / rope
Конструктор
LineBasicMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material.Цвет материала, по умолчанию устанавливается как белый (0xffffff).
color - цвет')" onmouseout="hide()">.color
является материалом обычных линий')" onmouseout="hide()">.isLineBasicMaterial
Используется для проверки, принадлежит ли данный объект, или производные от него, к классу LineBasicMaterial (материалу обычных линий). По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.lights
Свойство определяет, будет ли освещение влиять на материал. Значением по умолчанию является false..linewidth
Свойство управляет толщиной линии. Значение по умолчанию 1.
.linecap
Определяет внешний вид концов линии. Возможные значения: butt (торец), round (круглый) и square (квадратный). Значение по умолчанию round - круглый.Данное свойство соответствует свойству linecap в 2D Canvas и игнорируется WebGL визуализатором (рендерером). Вот эта статья о linecap на русском языке.
Примечание переводчика: Вот нарисованы три линии с разными значениями linecap. Для наглядности добавлены две направляющие. Каждая линия будет начинаться и заканчиваться этими направляющими. Левая линия будет использовать для linecap значение butt. Она не будет выходить за направляющие. Средняя линия будет нарисована со значением round. За направляющие будут выходить полукруги с диаметром равным толщине линии. Правая линия будет использовать значение square. Она будет выходить за направляющие на поля с шириной равной толщине линии и высотой равной половине толщины. | ![]() |
.linejoin
Определяет внешний вид соединений линии. Возможные значения: round - круглый, bevel (скос) и miter (митра - головной убор, часть богослужебного облаченияв ряде христианских церквей. В данном случае это
остроконечная католическая митра (в православии митра
округлая), что и определяет вид соединения линий.')" onmouseout="hide()">митра). Значение по умолчанию round - круглый.
Примечание переводчика: miter соединяет линии в одной точке, расширяя для этого их границы и заполняя пространство ромбами. round скругляет углы засчет добавления сектора с центром в точке пересечения линий и радиусом равным толщине линии. bevel "срезает" угол, рисуя треугольник с вершинами в точке пересечения линий и крайних точках каждой линии. | ![]() |
Методы
Общие методы смотрите в описании базового класса Material.Исходники
Material →
LineDashedMaterial
Материал для рисования геометрических фигур в каркасном стиле пунктирными линиями.Пример
var material = new THREE.LineDashedMaterial( {
color: 0xffffff,
linewidth: 1,
scale: 1,
dashSize: 3,
gapSize: 1,
} );
Другие примеры
WebGL / lines / dashed Canvas / lines /dashed
Конструктор
LineDashedMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material.Цвет материала, по умолчанию устанавливается как белый (0xffffff).
color - цвет')" onmouseout="hide()">.color
.dashSize
Размер штриха, по умолчанию равен 3. Это сумма размеров самого штриха и зазора между штрихами..gapSize
Размер зазора (расстояния) между штрихами, по умолчанию равен 1.
является материалом штриховых
линий')" onmouseout="hide()">.isLineDashedMaterial
Используется для проверки, принадлежит ли данный объект или производные от него, к классу LineDashedMaterial (материалу штриховых линий). По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.lights
Свойство определяет, будет ли освещение влиять на материал. Значением по умолчанию является false..linewidth
Управляет толщиной линии. Значение по умолчанию 1.
.scale
Масштаб штриховой части линии. Значение по умолчанию 1.Методы
Общие методы смотрите в описании базового класса Material.Исходники
Material
Абстрактный, базовый класс для материалов.Материалы описывают внешний вид объектов. Они определены (в основном) независимыми от визуализатора (рендерера), так что не придется переписывать материалы, если вы решили использовать другой визуализатор.
Перечисленные ниже свойства и методы наследуются всеми другими типами материала (хотя и могут иметь разные значения по умолчанию).
Конструктор
Material()Конструктор создает общий (универсальный) материал.
Свойства
.alphaTest
Устанавливает значение альфа-канала (определяет прозрачность), которое будет использоваться при прохождении проверки состояния альфа-канала.
Если непрозрачность (свойство opacity) будет меньше заданного здесь значения, материал не будет отображаться.Значение по умолчанию 0.
destination - целевое смешивание')" onmouseout="hide()">.blendDst
Целевое смешивание. Значением по умолчанию является OneMinusSrcAlphaFactor. Все возможные значения смотрите в описании констант целевых факторов смешивания.Для того, чтобы это свойство как-то повлияло на внешний вид, свойство blending должно быть установлено как CustomBlending.
alpha - альфа(канал) целевого смешивания')" onmouseout="hide()">.blendDstAlpha
Прозрачность для blendDst. Значением по умолчанию является null.
- уравнение смешивания')" onmouseout="hide()">.blendEquation
Уравнение смешивания, используемое при применении смешивания. Значением по умолчанию является AddEquation. Все возможные значения смотрите в описании констант уравнений смешивания.Для того, чтобы это свойство как-то повлияло на внешний вид, свойство blending должно быть установлено как CustomBlending.
- уравнение смешивания альфа(канала)')" onmouseout="hide()">.blendEquationAlpha
Прозрачность для blendEquation. Значением по умолчанию является null..blending
Свойство определяет какое смешивание будет использоваться при отображении объектов с этим материалом.
При использовании настраиваемых свойств blendSrc,
blendDst или blendEquation,
оно должно быть установлено как CustomBlending.Все возможные значения смотрите в описании констант режима смешивания. Значением по умолчанию является NormalBlending.
.blendSrc
Исходное смешивание. Значением по умолчанию является смешивания - исходные факторы')" onmouseout="hide()">SrcAlphaFactor. Все возможные значения смотрите в описании констант
смешивания - исходные факторы')" onmouseout="hide()">режима смешивания.
Для того, чтобы это свойство как-то повлияло на внешний вид, свойство blending должно быть установлено как CustomBlending.
- исходное смешивание альфа(канала)')" onmouseout="hide()">.blendSrcAlpha
Прозрачность для blendSrc. Значением по умолчанию является null..clipIntersection
Изменяет поведение плоскостей отсечения так, что обрезается только их пересечение, а не их соединение. Значение по умолчанию false..clippingPlanes
User-defined clipping planes specified as THREE.Plane objects in world space. These planes apply to the objects this material is attached to. Points in space whose signed distance to the plane is negative are clipped (not rendered).
Смотрите пример WebGL / clipping /intersection. Значением по умолчанию является null..clipShadows
Свойство определяет, обрезать ли тени в соответствии с плоскостями отсечения, указанными для этого материала. Значение по умолчанию false..colorWrite
Будет ли отображаться цвет материала. Это свойство можно использовать в соединении со свойством сетки (mesh) renderOrder для создания невидимых объектов, закрывающих другие объекты.
Значение по умолчанию true.Custom depth material to be used by this material when rendering to the depth map. Для правильного отображения теней при направленном (DirectionalLight) или прожекторном (SpotLight) освещении, требуется указывать customDepthMaterial, если было:
custom depth material -
настраиваемая глубина материала')" onmouseout="hide()">.customDepthMaterial
- изменение позиций вершин в шейдере вершин,
- использование карты смещения,
- использование карты прозрачности (alpha map) с проверкой прозрачности (alphaTest), или
- использовалась прозрачная текстура с проверкой прозрачности (alphaTest).
Тоже самое, что и customDepthMaterial, но используется с точечным освещением (PointLight). Значением по умолчанию является undefined.
custom distance material -
настраиваемая отдаление материала')" onmouseout="hide()">.customDistanceMaterial
.defines
Настраиваемые определения для введения в шейдер. Они передаются в виде объектного литерала, парами ключ/значение.
{ MY_CUSTOM_DEFINE: '' , PI2: Math.PI * 2 }.
Пары определяются как в вершинном шейдере, так и в шейдере фрагментов. Значением по умолчанию является undefined.
depth function - функция глубины')" onmouseout="hide()">.depthFunc
Свойство определяет используемую функцию глубины, т.е. функцию, используемую материалом для сравнения значения входящего пиксела глубины (значения по оси Z) с текущим значением буфера глубины.
Если результатом этого сравнения будет значение true, пиксель будет прорисован.
Значением по умолчанию является LessEqualDepth.
Все возможные значения смотрите в описании констант режима глубины..depthTest
Свойство определяет, включать ли проверку глубины при визуализации данного материала. Значение по умолчанию true..depthWrite
Whether rendering this material has any effect on the depth buffer. Значение по умолчанию true.При прорисовке двумерных наложений, возможно будет полезно отключить запись глубины, чтобы сложить вместе несколько объектов без создания артефактов z-индекса. When drawing 2D overlays it can be useful to disable the depth writing in order to layer several things together without creating z-index artifacts.
.dithering
Свойство определяет, применять ли размытие цвета для устранения появления полос на изображении. Значение по умолчанию false..flatShading
Define whether the material is rendered with flat shading. Значение по умолчанию false..fog
Свойство определяет, будет ли материал подвержен влиянию тумана. Значение по умолчанию true..id
Уникальное число-идентификатор для данного экземпляра материала..isMaterial
Используется для проверки, является ли данный объект, или производные от него, материалами. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.lights
Свойство определяет, будет ли освещение влиять на материал. Значение по умолчанию true..name
Дополнительное, необязательное название объекта (необязательно быть уникальным). По умолчанию это пустая строка ("")..needsUpdate
Указывает, что материал необходимо обновить на уровне WebGL. Установите значение true, если были внесены изменения, которые должны быть отображены в WebGL.При создании экземпляра нового материала, данное свойство автоматически устанавливается как true.
.opacity
Число с плавающей запятой (float) в диапазоне 0.0 - 1.0, показывающее насколько прозрачен материал. Значение 0.0 указывает на полную прозрачность, а 1.0 - на полную непрозрачность.
Значение по умолчанию равно 1.0.Если свойство transparent материала не установлено как true, материал будет оставаться полностью непрозрачным и данное значение будет влиять только на его цвет.
.overdraw
Величина расширения треугольника во время рисования.
Это обходное решение для случаев когда при использовании CanvasRenderer между треугольников появляются зазоры.
Среди браузеров хорошие результаты получаются при значении 0.5. Значение по умолчанию 0..polygonOffset
Свойство устанавливает, будет ли использоваться смещение полигонов. Значение по умолчанию false. Это свойство соответствует свойству WebGL GL_POLYGON_OFFSET_FILL.
Для чего нужно свойство polygonOffset? Вот описание Z-конфликта из книги Коичи Мацуда, Роджер Ли «WebGL: программирование трехмерной графики».... читать далее
Поддержка удаления скрытых поверхностей – сложная и мощная особенность системы WebGL, которая в большинстве действует безупречно.
Однако иногда, когда две фигуры или два объекта располагаются слишком близко друг к другу, результат ее работы выглядит менее естественно.
Этот феномен известен как Z-конфликт (Z-fighting) и показан на рис. 7.30. Здесь мы нарисовали два треугольника, имеющих одну и ту же координату Z.

Рис. 7.30. Визуальный эффект, обусловленный Z-конфликтом (слева)
Z-конфликт возникает из-за того, что вычисления с буфером глубины имеют ограниченную точность и иногда система оказывается неспособна определить, какой объект находится спереди, а какой сзади.
Технически этого конфликта можно избежать, если уделить особое внимание значениям координаты Z на этапе создания модели; однако, реализация такого решения выглядит нереалистичной в ситуациях, когда воспроизводится анимация с участием нескольких объектов.
Чтобы помочь решить эту проблему, WebGL предоставляет функцию, которая называется добавление сдвига к глубине (polygon offset). Эта функция автоматически выполняет сдвиг координаты Z, на величину, которая является функцией наклона объекта по отношению к линии взгляда.

Рис. 7.30. Визуальный эффект, обусловленный Z-конфликтом (слева)
Чтобы помочь решить эту проблему, WebGL предоставляет функцию, которая называется добавление сдвига к глубине (polygon offset). Эта функция автоматически выполняет сдвиг координаты Z, на величину, которая является функцией наклона объекта по отношению к линии взгляда.
gl.polygonOffset(factor, units)Определяет поправку к координате Z для каждой вершины, которая будет нарисована после вызова этого метода. Поправка вычисляется по формуле m * factor + r * units, где m представляет наклон треугольника относительно линии взгляда, а r – наименьшая разница между двумя значениями координаты Z, которые могут оказаться неразличимыми для WebGL.
масштабирования смещения полигонов')" onmouseout="hide()">.polygonOffsetFactor
Устанавливает для создания переменного смещения глубины
каждого полигона')" onmouseout="hide()">коэффициент масштабирования смещения полигонов. Значение по умолчанию 0.
.polygonOffsetUnits
Устанавливает блоки смещения полигонов. Значение по умолчанию 0..precision
Свойство переопределяет точность по умолчанию визуализатора для данного материала. Может быть highp,
mediump или lowp. Значение по умолчанию равно null.
умножение альфа(-канала)')" onmouseout="hide()">.premultipliedAlpha
Свойство определяет, будет ли предварительное перемножение значения альфа-канала, определяющего прозрачность.
Посмотрите отличия в примере WebGL / Materials / Transparency. Значение по умолчанию false..shadowSide
Определяет которая из сторон граней отбрасывает тени. Может быть front side - передняя сторона')" onmouseout="hide()">THREE.FrontSide,
back side - задняя сторона')" onmouseout="hide()">THREE.BackSide или
double side - две стороны')" onmouseout="hide()">THREE.DoubleSide. Значение по умолчанию null.
Если установлено значение null, сторона отбрасывающая тень определяется следующим образом:
| Material.side | Сторона, отбрасывающая тени | |
| THREE.FrontSide | задняя сторона | |
| THREE.BackSide | передняя сторона | |
| THREE.DoubleSide | обе стороны |
.side
Свойство определяет сторону грани, которая будет отображаться, - передняя, задняя или обе.
Значение по умолчанию front side - передняя сторона')" onmouseout="hide()">THREE.FrontSide. Остальные варианты это
back side - задняя сторона')" onmouseout="hide()">THREE.BackSide и
double side - две стороны')" onmouseout="hide()">THREE.DoubleSide.
.transparent
Определяет будет ли данный материал прозрачным или нет. Данное свойство влияет на процесс визуализации, так как прозрачные объекты нуждаются в специальной обработке и отображаются после непрозрачных объектов.Если данное свойство установлено как true, степень прозрачности материала определяется настройкой значения свойства opacity.
Значение по умолчанию false.
.type
Значением этого свойства является строка Material. Она не должна изменяться и может использоваться для поиска на сцене всех объектов данного типа.
identifier - универсальный уникальный
идентификатор')" onmouseout="hide()">.uuid
identifier - универсальный уникальный
идентификатор')" onmouseout="hide()">UUID данного экземпляра материала. Он присваивается автоматически и не должен быть изменен.
Вот статья Википедии про UUID на русском языке.
.vertexColors
Свойство определяет, как окрашиваются вершины, путем задания способа заполнения атрибута цвета.
Возможными значениями являются no colors - не окрашено')" onmouseout="hide()">THREE.NoColors,
face colors - цвета граней')" onmouseout="hide()">THREE.FaceColors и
vertex colors - цвета вершин')" onmouseout="hide()">THREE.VertexColors. Значение по умолчанию
no colors - не окрашено')" onmouseout="hide()">THREE.NoColors.
.visible
Свойство определяет, будет ли данный материал видимым. Значение по умолчанию true..userData
Этот объект может использоваться для хранения пользовательских данных о материале. В нем нельзя хранить ссылки на функции, так как они не будут клонироваться.Методы
В этом классе доступны методы EventDispatcher.Возвращает новый материал с теми же параметрами как у данного материала.
clone - клонировать')" onmouseout="hide()">.clone( )
Метод копирует параметры из переданного материала (параметр material) в данный материал.
copy- копировать')" onmouseout="hide()">.copy(
material - материал')" onmouseout="hide()">material )
.dispose( )
This disposes the material. Textures of a material don't get disposed. These needs to be disposed by Texture..setValues( values )
values -- контейнер с параметрами.
Метод устанавливает свойства на основе значений, переданных в аргументе..toJSON(
метаданные, т.е. дополнительные
сведения, прилагаемые к данным')" onmouseout="hide()">meta )
meta -- объект, содержащий метаданные для материала, вроде текстур или изображений.
Конвертирует материал в формат JSON для three.js..update( )
Метод вызывает для материала .dispatchEvent( { type: 'update' }).Исходники
Material →
MeshBasicMaterial
Материал для рисования геометрических элементов в простом, затушеванном виде (плоском (flat) или каркасном (wireframe).На этот материал не влияет освещение.
По умолчанию будет отображаться в виде плоских многоугольников. Чтобы нарисовать сетку в виде каркаса, установите свойство wireframe как true.

MeshBasicMaterial плоский (flat) и каркасный (wireframe).
Конструктор
MeshBasicMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material.Альфа-карта представляет собой текстуру в оттенках серого, которая управляет непрозрачностью по всей поверхности (черный цвет: полностью прозрачный; белый: полностью непрозрачный). Значением по умолчанию является null.
alpha map - карта альфа-канала,
т.е. карта прозрачности')" onmouseout="hide()">.alphaMap
Используется только цвет текстуры, альфа-канал (если он существует) игнорируется. Для текстур RGB и RGBA визуализатор WebGL будет использовать канал зеленого цвета при дискретизации этой текстуры, из-за For RGB and RGBA textures, the WebGL renderer will use the green channel when sampling this texture due to the extra bit of precision provided for green in DXT-compressed and uncompressed RGB 565 formats. из-за дополнительного бита точности, предоставляемого зеленым каналом, в сжатом DXT и несжатом RGB 565 форматах. Текстуры только с каналом яркости и яркости/прозрачности (альфа-канал) также будут работать как и ожидалось. Luminance-only and luminance/alpha textures will also still work as expected.
Канал красного цвета используется в данной текстуре в качестве ambient occlusion map. Значением по умолчанию является null. The aoMap requires a second set of UVs, and consequently will ignore the repeat and offset Texture properties.
aoMap это сокращ. англ. слов ambient occlusion map -
карта перекрытия (затенения) при общем (фоновом)
освещении')" onmouseout="hide()">.aoMap
Статья в русской Википедии о эффекте перекрытия (модели затенения) при фоновом освещении. А вот в английской.
интенсивность затенения при общем (фоновом) освещении')" onmouseout="hide()">.aoMapIntensity
Интенсивность затенения при общем (фоновом) освещении. Значение по умолчанию равно 1. Нулевое значение означает отсутствие эффекта перекрытия (затенения).Цвет материала, по умолчанию установлен как белый (0xffffff - white).
color - цвет')" onmouseout="hide()">.color
.combine
How to combine the result of the surface's color with the environment map, if any.Возможными значениями являются
multiply - умножать')" onmouseout="hide()">THREE.Multiply (значение по умолчанию),
mix operation - операция смешивания')" onmouseout="hide()">THREE.MixOperation и
add operation - операция сложения')" onmouseout="hide()">THREE.AddOperation. Если выбрано смешивание (THREE.MixOperation), то для смешивания двух цветов будет использовано свойство
reflectivity - коэффициент отражения,
способность к отражению')" onmouseout="hide()">reflectivity.
является основным материалом
сетки')" onmouseout="hide()">.isMeshBasicMaterial
Используется для проверки, является ли данный объект, или производные от него, основными материалами сетки. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.envMapКарта окружения (environment map). Значением по умолчанию является null.
Карта освещения. Значением по умолчанию является null. Свойство lightMap требует второго набора UV координат и, следовательно, будет игнорировать свойства
light map - карта освещения')" onmouseout="hide()">.lightMap
(repeat - повторение)')" onmouseout="hide()">repeat и
(offset - смещение)')" onmouseout="hide()">offset текстуры.
.lightMapIntensity
Intensity of the baked light. Значение по умолчанию равно 1..lights
Свойство определяет, будет ли материал зависеть от освещения. Значением по умолчанию является false.Карта цвета. Значением по умолчанию является null.
map - карта')" onmouseout="hide()">.map
.morphTargets
Свойство определяет, будет ли данный материал использовать цели морфинга (morphTargets). Значением по умолчанию является false..reflectivity
How much the environment map affects the surface; also see .combine. The default value is 1 and the valid range is between 0 (no reflections) and 1 (full reflections)..refractionRatio
The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material. It is used with environment mapping modes THREE.CubeRefractionMapping and THREE.EquirectangularRefractionMapping.
Коэффициент преломления не должен превышать 1. Значение по умолчанию равно 0.98..skinning
Define whether the material uses skinning. Значением по умолчанию является false.Карта отражений используемая материалом. Значением по умолчанию является null.
specular map - карта отражения')" onmouseout="hide()">.specularMap
.wireframe
Свойство позволяет отобразить геометрическую фигуру в виде каркаса. Значением по умолчанию является false (т.е. каркас не виден и визуализация происходит при помощи плоских многоугольников)..wireframeLinecap
Определяет внешний вид концов линии. Возможные значения: butt (торец), round (круглый) и square (квадратный). Значение по умолчанию round - круглый.Данное свойство соответствует свойству linecap в 2D Canvas и игнорируется WebGL визуализатором (рендерером). Вот эта статья о linecap на русском языке.
.wireframeLinejoin
Определяет внешний вид соединений линии. Возможные значения: round - круглый, bevel (скос) и miter
(митра - головной убор, часть богослужебного облаченияв ряде христианских церквей. В данном случае это
остроконечная католическая митра (в православии митра
округлая), что и определяет вид соединения линий.')" onmouseout="hide()">митра). Значение по умолчанию round - круглый.
Данное свойство соответствует свойству lineJoin в 2D Canvas и игнорируется WebGL визуализатором (рендерером). Вот эта статья о lineJoin на русском языке.
.wireframeLinewidth
Управляет толщиной линии каркаса. Значение по умолчанию равно 1.
Методы
Для информации об общих методах смотрите базовый класс Material.Исходники
Material →
MeshDepthMaterial
Материал для рисования геометрических элементов фигуры в глубину. Глубина зависит от ближней и дальней плоскостей отсечения камеры. Чем белее цвет, тем ближе находится элемент фигуры, чем темнее - тем дальше.
MeshDepthMaterial плоский (flat) и каркасный (wireframe).
Конструктор
MeshDepthMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material.Карта значений альфа-канала (карта прозрачности) - это текстура оттенков серого, которая управляет непрозрачностью всей поверхности (черный цвет: полная прозрачность; белый цвет: полная непрозрачность). Значением по умолчанию является null.
alpha map - карта альфа-канала')" onmouseout="hide()">.alphaMap
Используется только цвет текстуры, если существует альфа-канал, то он игнорируется. Для текстур в формате RGB и RGBA, при выборке этой текстуры визуализатор WebGL будет использовать канал зеленого цвета из-за дополнительного бита точности, предоставляемого для зеленого цвета в сжатом DXT формате и упаковке в формате RGB 565. Форматы текстур только яркости и яркости+альфа-канала также будут работать должным образом.
.depthPacking
Кодирование для упаковки значений глубины. Значением по умолчанию является BasicDepthPacking')" onmouseout="hide()">BasicDepthPacking.
Карта сдвига влияет на положение вершин сетки (mesh). В отличие от других карт, влияющих только на свет и тень материала, сдвиг вершин может отбрасывать тени, блокировать другие объекты, а то и действовать как реальные геометрические элементы. Текстура сдвига - это изображение, в котором значение каждого пиксела (белый считается самым верхним) сопоставляется The displacement map affects the position of the mesh's vertices. Unlike other maps which only affect the light and shade of the material the displaced vertices can cast shadows, block other objects, and otherwise act as real geometry. The displacement texture is an image where the value of each pixel (white being the highest) is mapped against, and repositions, the vertices of the mesh.
displacement map - карта сдвига')" onmouseout="hide()">.displacementMap
.displacementScale
Значение свойства определяет как сильно карта сдвига влияет на сетку (где черный цвет, там нет сдвига, а где белый - сдвиг максимален). Без установки карты сдвига данное значение не применяется.
Значение по умолчанию равно 1..displacementBias
Смещение значений карты сдвига на вершинах сетки (mesh). Без установки карты сдвига данное значение не применяется. Значение по умолчанию равно 0..fog
Свойство определяет, будет ли материал подвержен влиянию тумана. Значением по умолчанию является false.
является материалом сетки
с прорисовкой глубины')" onmouseout="hide()">.isMeshDepthMaterial
Используется для проверки, является ли данный объект, или производные от него, материалами сетки с прорисовкой глубины. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.lights
Свойство определяет, будет ли освещение влиять на материал. Значением по умолчанию является false.Карта цвета. Значением по умолчанию является null.
map - карта')" onmouseout="hide()">.map
.morphTargets
Свойство определяет, будет ли материал использовать morphTargets. Значением по умолчанию является false..skinning
Свойство определяет, будет ли материал использовать skinning. Значением по умолчанию является false..wireframe
Свойство позволяет отобразить геометрическую фигуру в виде каркаса. Значением по умолчанию является false (т.е. каркас не виден и объект отображен плавно затушеванным)..wireframeLinewidth
Управляет толщиной линии каркаса. Значение по умолчанию равно 1.
Методы
Для информации об общих методах смотрите базовый класс Material.Исходники
Material →
MeshLambertMaterial
Материал для матовых поверхностей, без зеркальных бликов.Этот материал использует для расчета коэффициента отражения модель Ламберта, не соответствующую физическим принципам. (Вот статья Википедии «Закон Ламберта» на русском языке. Он может хорошо имитировать некоторые поверхности (такие как необработанная древесина или камень), но не в состоянии воспроизвести блестящие поверхности с зеркальными бликами (например, лакированная древесина).
Затенение рассчитывается с использованием модели тонирования (затенения) Гуро (Gouraud shading model). При этом вычисляется затенение для вершины (т.е. в вершинном шейдере) и результат интерполируется по граням многоугольника (полигона).
Благодаря простоте моделей освещения и отражения, при использовании данного материала производительность вычислений будет выше, чем у MeshPhongMaterial, MeshStandardMaterial или MeshPhysicalMaterial ценой некоторого снижения графической точности.

MeshLambertMaterial плоский (flat) и каркасный (wireframe).
Конструктор
MeshLambertMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material.Карта значений альфа-канала (карта прозрачности) - это текстура оттенков серого, которая управляет непрозрачностью всей поверхности (черный цвет: полная прозрачность; белый цвет: полная непрозрачность). Значением по умолчанию является null.
alpha map - карта альфа-канала')" onmouseout="hide()">.alphaMap
Используется только цвет текстуры, если существует альфа-канал, то он игнорируется. Для текстур в формате RGB и RGBA, при выборке этой текстуры визуализатор WebGL будет использовать канал зеленого цвета из-за дополнительного бита точности, предоставляемого для зеленого цвета в сжатом DXT формате и упаковке в формате RGB 565. Форматы текстур только яркости и яркости+альфа-канала также будут работать должным образом.
Канал красного цвета используется в данной текстуре в качестве карты затенения при фоновом освещении (ambient occlusion map). Значением по умолчанию является null. Свойству aoMap требуется второй набор текстурных координат UV и поэтому будут игнорироваться свойства текстуры repeat и offset.
aoMap это сокращ. англ. слов ambient occlusion map -
карта перекрытия (затенения) при общем (фоновом)
освещении')" onmouseout="hide()">.aoMap
Статья в русской Википедии о эффекте перекрытия (модели затенения) при фоновом освещении. А вот в английской.
интенсивность затенения при общем (фоновом) освещении')" onmouseout="hide()">.aoMapIntensity
Интенсивность затенения при общем (фоновом) освещении. Значение по умолчанию равно 1. Нулевое значение означает отсутствие эффекта перекрытия (затенения).Цвет материала, по умолчанию установлен как белый (0xffffff - white).
color - цвет')" onmouseout="hide()">.color
.combine
Свойство определяет, как совмещаются цвет поверхности с картой окружения, если таковая существует.Возможными значениями являются
multiply - умножать')" onmouseout="hide()">THREE.Multiply (значение по умолчанию),
mix operation - операция смешивания')" onmouseout="hide()">THREE.MixOperation и
add operation - операция сложения')" onmouseout="hide()">THREE.AddOperation. Если выбрано смешивание (THREE.MixOperation), то для смешивания двух цветов будет использовано свойство
reflectivity - коэффициент отражения,
способность к отражению')" onmouseout="hide()">reflectivity.
Цвет света, излучаемого материалом; фактически это однотонный цвет, не подверженный влиянию другого освещения. Значением по умолчанию является black - черный цвет (0x000000).
emissive - излучающий, испускающий, эмиссионный')" onmouseout="hide()">.emissive
Свойство устанавливает карту излучения (свечения). Значением по умолчанию является null. Цвет карты излучения модулируется цветом и интенсивностью испускаемого цвета. Если имеется карта излучения, обязательно установите цвет испускаемого света на что-либо отличное от черного цвета.
emissive map - карта излучения')" onmouseout="hide()">.emissiveMap
.emissiveIntensity
Интенсивность испускаемого света. Модулирует излучаемый цвет. Значение по умолчанию равно 1.Карта окружения. Значением по умолчанию является null.
env map - сокращ. англ. слов
environment map - карта окружения')" onmouseout="hide()">.envMap
сетки (с расчетом затенения) по Ламберту')" onmouseout="hide()">.isMeshLambertMaterial
Используется для проверки, является ли данный объект, или производные от него, материалами сетки с расчетом затенения по Ламберту. Значением по умолчанию является true.
Не нужно его изменять, так как внутри three.js оно используется для оптимизации.Карта освещения. Значением по умолчанию является null. Свойству lightMap требуется второй набор текстурных координат UV и поэтому будут игнорироваться свойства текстуры repeat и offset.
light map - карта освещения')" onmouseout="hide()">.lightMap
.lightMapIntensity
Интенсивность Intensity of the baked light. Значение по умолчанию равно 1.Карта цвета. Значением по умолчанию является null.
map - карта')" onmouseout="hide()">.map
morphing normals - нормали морфинга')" onmouseout="hide()">.morphNormals
Свойство определяет, будет ли материал использовать нормали морфинга. Установите его как true для передачи атрибутов
morphNormals из
Geometry в шейдер. Значением по умолчанию является false..morphTargets
Свойство определяет, будет ли материал использовать цели морфинга. Значением по умолчанию является false..reflectivity
Свойство определяет, насколько карта окружения влияет на поверхность; также смотрите свойство combine..refractionRatio
Показатель преломления воздуха (примерно равный 1) разделенный на показатель преломления материала.
Он используется с режимами картирования окружения THREE.CubeRefractionMapping
и THREE.EquirectangularRefractionMapping.
Коэффициент преломления не должен превышать 1. Значение по умолчанию равно 0.98.
3D-модели полигональной сеткой)')" onmouseout="hide()">.skinning
Свойство определяет, будет ли использоватья skinning - процесс создания кожи
- операция обворачивания 3D-модели
полигональной сеткой.')" onmouseout="hide()">скиннинг (skinning). Значением по умолчанию является false.
Карта отражений используемая материалом. Значением по умолчанию является null.
specular map - карта отражения')" onmouseout="hide()">.specularMap
.wireframe
Свойство позволяет отобразить геометрическую фигуру в виде каркаса. Значением по умолчанию является false (т.е. каркас не виден и визуализация происходит при помощи плоских многоугольников)..wireframeLinecap
Определяет внешний вид концов линии. Возможные значения: butt (торец), round (круглый) и square (квадратный). Значение по умолчанию round - круглый.Данное свойство соответствует свойству linecap в 2D Canvas и игнорируется WebGL визуализатором (рендерером). Вот эта статья о linecap на русском языке.
.wireframeLinejoin
Определяет внешний вид соединений линии. Возможные значения: round - круглый, bevel (скос) и miter
(митра - головной убор, часть богослужебного облаченияв ряде христианских церквей. В данном случае это
остроконечная католическая митра (в православии митра
округлая), что и определяет вид соединения линий.')" onmouseout="hide()">митра). Значение по умолчанию round - круглый.
Данное свойство соответствует свойству lineJoin в 2D Canvas и игнорируется WebGL визуализатором (рендерером). Вот эта статья о lineJoin на русском языке.
.wireframeLinewidth
Управляет толщиной линии каркаса. Значение по умолчанию равно 1.
Методы
Для информации об общих методах смотрите базовый класс Material.Исходники
Material →
MeshNormalMaterial
Материал отображающий векторы нормалей как цвета в RGB-формате.
MeshNormalMaterial, MeshNormalMaterial с включенным flatShading и MeshNormalMaterial с включенным wireframe.
Конструктор
MeshNormalMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material..fog
Свойство устанавливает, будет или нет материал подвержен влиянию тумана. По умолчанию значение равно false..isMeshNormalMaterial
Используется для проверки, является ли данный объект, или производные от него, материалом нормалей сетки. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.lights
Свойство устанавливает, будет или нет освещение влиять на материал. По умолчанию значение равно false..morphTargets
Свойство определяет, будет ли материал использовать цели морфинга. По умолчанию значение равно false..wireframe
Свойство позволяет отобразить геометрическую фигуру в виде каркаса. Значением по умолчанию является false (т.е. каркас не виден и объект ровно закрашен)..wireframeLinewidth
Свойство управляет толщиной линий каркаса. Значение по умолчанию равно 1.
Методы
Для информации об общих методах смотрите базовый класс Material.Исходники
Material →
MeshPhongMaterial
Материал для блестящих поверхностей с зеркальными бликами.Этот материал использует для расчета коэффициента отражения модель Блинна-Фонга (Blinn-Phong model), не соответствующую физическим принципам. В отличие от модели Ламберта, используемой в MeshLambertMaterial, данный материал может имитировать блестящие поверхности с зеркальными бликами (такие как лакированная древесина).
Затенение рассчитывается с помощью модели затенения по Фонгу (Phong shading model). Здесь вычисляется затенение на пиксель (то есть, в шейдере фрагментов или по другому в пиксельном шейдере), которое дает более точные результаты, чем модель Гуро (Gouraud), используемая в MeshLambertMaterial, за счет некоторого снижения производительности. MeshStandardMaterial и MeshPhysicalMaterial также используют эту модель затенения.
При использовании данного материала, производительность в целом будет больше, чем у MeshStandardMaterial и MeshPhysicalMaterial, ценой некоторого снижения графической точности.

MeshPhongMaterial, MeshPhongMaterial с включенным flatShading и MeshPhongMaterial с включенным wireframe.
Конструктор
MeshPhongMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material.Карта значений альфа-канала (карта прозрачности) - это текстура оттенков серого, которая управляет непрозрачностью всей поверхности (черный цвет: полная прозрачность; белый цвет: полная непрозрачность). Значением по умолчанию является null.
alpha map - карта альфа-канала')" onmouseout="hide()">.alphaMap
Используется только цвет текстуры, если существует альфа-канал, то он игнорируется. Для текстур в формате RGB и RGBA, при выборке этой текстуры визуализатор WebGL будет использовать канал зеленого цвета из-за дополнительного бита точности, предоставляемого для зеленого цвета в сжатом DXT формате и упаковке в формате RGB 565. Форматы текстур только яркости и яркости+альфа-канала также будут работать должным образом.
Канал красного цвета используется в данной текстуре в качестве карты затенения при фоновом освещении (ambient occlusion map). Значением по умолчанию является null. Свойству aoMap требуется второй набор текстурных координат UV и поэтому будут игнорироваться свойства текстуры repeat и offset.
aoMap это сокращ. англ. слов ambient occlusion map -
карта перекрытия (затенения) при общем (фоновом)
освещении')" onmouseout="hide()">.aoMap
Статья в русской Википедии о эффекте перекрытия (модели затенения) при фоновом освещении. А вот статья «Ambient occlusion» в английской Википедии.
интенсивность затенения при общем (фоновом) освещении')" onmouseout="hide()">.aoMapIntensity
Интенсивность затенения при общем (фоновом) освещении. Значение по умолчанию равно 1. Нулевое значение означает отсутствие эффекта перекрытия (затенения).Текстура для создания карты рельефа. Значения черного и белого цвета сопоставляются с предполагаемой глубиной по отношению с освещением. Рельеф не оказывает влияния на геометрию объекта, только на освещение. Если определена карта нормалей, карта рельефа будет проигнорирована.
bump map - карта рельефа')" onmouseout="hide()">.bumpMap
.bumpScale
Свойство определяет, как сильно карта рельефа повлияет на материал. Типичный диапазон значений от 0 до 1. Значение по умолчанию равно 1.Цвет материала, по умолчанию установлен как белый (0xffffff - white).
color - цвет')" onmouseout="hide()">.color
.combine
Свойство определяет, как совмещаются цвет поверхности с картой окружения, если таковая существует.Возможными значениями являются
multiply - умножать')" onmouseout="hide()">THREE.Multiply (значение по умолчанию),
mix operation - операция смешивания')" onmouseout="hide()">THREE.MixOperation и
add operation - операция сложения')" onmouseout="hide()">THREE.AddOperation. Если выбрано смешивание (THREE.MixOperation), то для смешивания двух цветов будет использовано свойство
reflectivity - коэффициент отражения,
способность к отражению')" onmouseout="hide()">reflectivity.
Карта сдвига влияет на положение вершин сетки (mesh). В отличие от других карт, влияющих только на свет и тень материала, сдвиг вершин может отбрасывать тени, блокировать другие объекты, а то и действовать как реальные геометрические элементы. The displacement texture is an image where the value of each pixel (white being the highest) is mapped against, and repositions, the vertices of the mesh.
displacement map - карта сдвига')" onmouseout="hide()">.displacementMap
.displacementScale
Значение свойства определяет, насколько сильно карта сдвига влияет на сетку (где черный цвет, там нет сдвига, а где белый - сдвиг максимален).
Без установки карты сдвига данное значение не применяется. Значение по умолчанию равно 1..displacementBias
Смещение значений карты сдвига на вершинах сетки (mesh). Без установки карты сдвига данное значение не применяется. Значение по умолчанию равно 0.Цвет света, излучаемого материалом; фактически это однотонный цвет, не подверженный влиянию другого освещения. Значением по умолчанию является black - черный цвет (0x000000).
emissive - излучающий, испускающий, эмиссионный')" onmouseout="hide()">.emissive
Свойство устанавливает карту излучения (свечения). Значением по умолчанию является null. Цвет карты излучения модулируется цветом и интенсивностью испускаемого цвета. Если имеется карта излучения, обязательно установите цвет испускаемого света на что-либо отличное от черного цвета.
emissive map - карта излучения')" onmouseout="hide()">.emissiveMap
.emissiveIntensity
Интенсивность испускаемого света. Модулирует излучаемый цвет. Значение по умолчанию равно 1.Карта окружения. Значением по умолчанию является null.
env map - сокращ. англ. слов
environment map - карта окружения')" onmouseout="hide()">.envMap
сетки (с расчетом затенения) по Фонгу')" onmouseout="hide()">.isMeshPhongMaterial
Используется для проверки, является ли данный объект, или производные от него, материалами сетки с расчетом затенения по Фонгу. Значением по умолчанию является true.
Не нужно его изменять, так как внутри three.js оно используется для оптимизации.Карта освещения. Значением по умолчанию является null. Свойству lightMap требуется второй набор текстурных координат UV и поэтому будут игнорироваться свойства текстуры repeat и offset.
light map - карта освещения')" onmouseout="hide()">.lightMap
.lightMapIntensity
Интенсивность Intensity of the baked light. Значение по умолчанию равно 1.Карта цвета. Значением по умолчанию является null.
map - карта')" onmouseout="hide()">.map
morphing normals - нормали морфинга')" onmouseout="hide()">.morphNormals
Свойство определяет, будет ли материал использовать нормали морфинга. Установите его как true для передачи атрибутов
morphNormals из
Geometry в шейдер. Значением по умолчанию является false..morphTargets
Свойство определяет, будет ли материал использовать цели морфинга. Значением по умолчанию является false.Текстура для создания карты нормалей. The RGB values affect the surface normal for each pixel fragment and change the way the color is lit. Normal maps do not change the actual shape of the surface, only the lighting.
normal map - карта нормалей')" onmouseout="hide()">.normalMap
.normalMapType
Тип карты нормалей.Можно выбирать из THREE.TangentSpaceNormalMap (значение по умолчанию) и THREE.ObjectSpaceNormalMap.
Свойство определяет, насколько сильно карта нормалей влияет на материал. Типовой диапазон значений от 0 до 1. Значением по умолчанию является двумерный вектор, установленный как (1,1).
normal scale - масштаб нормалей')" onmouseout="hide()">.normalScale
.reflectivity
Свойство определяет, насколько карта окружения влияет на поверхность; также смотрите свойство combine..refractionRatio
Показатель преломления воздуха (примерно равный 1) разделенный на показатель преломления материала.
Он используется с режимами картирования окружения THREE.CubeRefractionMapping
и THREE.EquirectangularRefractionMapping.
Коэффициент преломления не должен превышать 1. Значение по умолчанию равно 0.98..shininess
How shiny the .specular highlight is; a higher value gives a sharper highlight. Значение по умолчанию равно 30.
3D-модели полигональной сеткой)')" onmouseout="hide()">.skinning
Свойство определяет, будет ли использоваться skinning - процесс создания кожи
- операция обворачивания 3D-модели
полигональной сеткой.')" onmouseout="hide()">скиннинг (skinning). Значением по умолчанию является false.
Цвет, отражаемый материалом. Значением по умолчанию является Color, установленный как 0x111111 (темно-темно-серый).
specular - зеркальный, отражающий')" onmouseout="hide()">.specular
Свойство определяет, насколько сильно блестит материал и цвет его блеска.
Значение карты отражений задает насколько сильно зеркальная поверхность может отражать свет и насколько карта окружения будет влиять на эту поверхность. Значением по умолчанию является null.
specular map - карта отражения')" onmouseout="hide()">.specularMap
.wireframe
Свойство позволяет отобразить геометрическую фигуру в виде каркаса. Значением по умолчанию является false (т.е. каркас не виден и визуализация происходит при помощи плоских многоугольников)..wireframeLinecap
Определяет внешний вид концов линии. Возможные значения: butt (торец), round (круглый) и square (квадратный). Значение по умолчанию round - круглый.Данное свойство соответствует свойству linecap в 2D Canvas и игнорируется WebGL визуализатором (рендерером). Вот эта статья о linecap на русском языке.
.wireframeLinejoin
Определяет внешний вид соединений линии. Возможные значения: round - круглый, bevel (скос) и miter
(митра - головной убор, часть богослужебного облаченияв ряде христианских церквей. В данном случае это
остроконечная католическая митра (в православии митра
округлая), что и определяет вид соединения линий.')" onmouseout="hide()">митра). Значение по умолчанию round - круглый.
Данное свойство соответствует свойству lineJoin в 2D Canvas и игнорируется WebGL визуализатором (рендерером). Вот эта статья о lineJoin на русском языке.
.wireframeLinewidth
Управляет толщиной линии каркаса. Значение по умолчанию равно 1.
Методы
Для информации об общих методах смотрите базовый класс Material.Исходники
Material → MeshStandardMaterial →
MeshPhysicalMaterial
Расширение MeshStandardMaterial, позволяющее увеличить регулировку способности к отражению.Обратите внимание, что при использовании этого материала, для достижения наилучших результатов, всегда следует указывать карту окружения.
Примеры
webgl / materials / variations / physical webgl / materials / reflectivity
Конструктор
MeshPhysicalMaterial( parameters )
parameters - объект с одним или несколькими свойствами, определяющими внешний вид материала (дополнительный, необязательный параметр).
Здесь можно передать любое свойство материала (включая любое свойство унаследованное от Material и MeshStandardMaterial).
Свойства
Для информации об общих свойствах смотрите базовые классы Material и MeshStandardMaterial..clearCoat
Уровень прозрачной оболочки, диапазон значений от 0.0 до 1.0. Значение по умолчанию равно 0.0..clearCoatRoughness
Свойство определяет, насколько велика шероховатость прозрачной оболочки, диапазон значений от 0.0 до 1.0. Значение по умолчанию равно 0.0.
является физическим материалом сетки')" onmouseout="hide()">.isMeshPhysicalMaterial
Используется для проверки, является ли данный объект, или производные от него, физическим материалом сетки. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.defines
Объект в виде: { 'PHYSICAL': '' };.
Он используется WebGLRenderer'ом для выбора шейдеров..reflectivity
Степень отражения, возможны значения от 0.0 до 1.0. Значение по умолчанию равно 0.5.Свойство моделирует способность к отражению света неметаллических материалов. Оно не работает, если свойство metalness равно 1.0.
Методы
Для информации об общих методах смотрите базовые классы Material и MeshStandardMaterial.Исходники
Material →
MeshStandardMaterial
Стандартный, физически обоснованный материал, using Metallic-Roughness workflow.Визуализация на физических принципах (physically based rendering - PBR) в последнее время стала стандартом во многих приложениях по 3D графике, таких как Unity, Unreal и 3D Studio Max.
Такой подход отличается от более старых попыток тем, что вместо использования приближений метода, которым свет взаимодействует с поверхностью, используется физически правильная модель. Идея заключается в том, что вместо того, чтобы подбирать материалы для хорошего вида при конкретном освещении, можно создать материал, который будет «правильно» реагировать при любых вариантах освещения.
На практике это дает более точный и реалистичный результат, чем у MeshLambertMaterial или MeshPhongMaterial, за счет более высоких затрат на вычисления.
Затенение рассчитывается тем же самым способом, что и для MeshPhongMaterial, с использованием модели затенения по Фонгу (Phong shading model). Здесь вычисляется затенение на пиксель (то есть, в шейдере фрагментов или по другому в пиксельном шейдере), которое дает более точные результаты, чем модель Гуро (Gouraud), используемая в MeshLambertMaterial, за счет некоторого снижения производительности.
Обратите внимание, при использовании данного материала, для достижения наилучших результатов, всегда следует указывать карту окружения.
Для начального ознакомления с идеей PBR и настройкой PBR-материала, обратитесь к следующим статьям, написанным народом сайта marmoset:
- Basic Theory of Physically Based Rendering - Базовая теория визуализации на физических принципах
- Physically Based Rendering and You Can Too - Это вы можете: визуализация на физических принципах.

MeshStandardMaterial, MeshStandardMaterial с включенным flatShading и MeshStandardMaterial с включенным wireframe.
Конструктор
MeshStandardMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material.Карта значений альфа-канала (карта прозрачности) - это текстура оттенков серого, которая управляет непрозрачностью всей поверхности (черный цвет: полная прозрачность; белый цвет: полная непрозрачность). Значением по умолчанию является null.
alpha map - карта альфа-канала')" onmouseout="hide()">.alphaMap
Используется только цвет текстуры, если существует альфа-канал, то он игнорируется. Для текстур в формате RGB и RGBA, при выборке этой текстуры визуализатор WebGL будет использовать канал зеленого цвета из-за дополнительного бита точности, предоставляемого для зеленого цвета в сжатом DXT формате и упаковке в формате RGB 565. Форматы текстур только яркости и яркости+альфа-канала также будут работать должным образом.
Канал красного цвета используется в данной текстуре в качестве карты затенения при фоновом освещении (ambient occlusion map). Значением по умолчанию является null. Свойству aoMap требуется второй набор текстурных координат UV и поэтому будут игнорироваться свойства текстуры repeat и offset.
aoMap это сокращ. англ. слов ambient occlusion map -
карта перекрытия (затенения) при общем (фоновом)
освещении')" onmouseout="hide()">.aoMap
Статья в русской Википедии о эффекте перекрытия (модели затенения) при фоновом освещении. А вот статья «Ambient occlusion» в английской Википедии.
интенсивность затенения при общем (фоновом) освещении')" onmouseout="hide()">.aoMapIntensity
Интенсивность затенения при общем (фоновом) освещении. Значение по умолчанию равно 1. Нулевое значение означает отсутствие эффекта перекрытия (затенения).Текстура для создания карты рельефа. Значения черного и белого цвета сопоставляются с предполагаемой глубиной по отношению с освещением. Рельеф не оказывает влияния на геометрию объекта, только на освещение. Если определена карта нормалей, карта рельефа будет проигнорирована.
bump map - карта рельефа')" onmouseout="hide()">.bumpMap
.bumpScale
Свойство определяет, как сильно карта рельефа повлияет на материал. Типичный диапазон значений от 0 до 1. Значение по умолчанию равно 1.Цвет материала, по умолчанию установлен как белый (0xffffff - white).
color - цвет')" onmouseout="hide()">.color
.defines
Объект в виде: { 'STANDARD': '' };.
Он используется WebGLRenderer'ом для выбора шейдеров.Карта сдвига влияет на положение вершин сетки (mesh). В отличие от других карт, влияющих только на свет и тень материала, сдвиг вершин может отбрасывать тени, блокировать другие объекты, а то и действовать как реальные геометрические элементы. The displacement texture is an image where the value of each pixel (white being the highest) is mapped against, and repositions, the vertices of the mesh.
displacement map - карта сдвига')" onmouseout="hide()">.displacementMap
.displacementScale
Значение свойства определяет, насколько сильно карта сдвига влияет на сетку (где черный цвет, там нет сдвига, а где белый - сдвиг максимален).
Без установки карты сдвига (свойство displacementMap) данное значение не применяется. Значение по умолчанию равно 1..displacementBias
Смещение значений карты сдвига на вершинах сетки (mesh). Без установки карты сдвига (свойство displacementMap) данное значение не применяется. Значение по умолчанию равно 0.Цвет света, излучаемого материалом; фактически это однотонный цвет, не подверженный влиянию другого освещения. Значением по умолчанию является black - черный цвет (0x000000).
emissive - излучающий, испускающий, эмиссионный')" onmouseout="hide()">.emissive
Свойство устанавливает карту излучения (свечения). Значением по умолчанию является null. Цвет карты излучения модулируется цветом и интенсивностью испускаемого цвета. Если имеется карта излучения, обязательно установите цвет испускаемого света на что-либо отличное от черного цвета.
emissive map - карта излучения')" onmouseout="hide()">.emissiveMap
.emissiveIntensity
Интенсивность испускаемого света. Модулирует излучаемый цвет. Значение по умолчанию равно 1.Карта окружения. Значением по умолчанию является null. Note that in order for the material roughness property to correctly blur out the environment map, the shader must have access to mipmaps of the env texture. TextureCubes created with default settings are correctly configured; if adjusting texture parameters manually, ensure minFilter is set to one of the MipMap options, and that mip maps have not been otherwise forcibly disabled.
env map - сокращ. англ. слов
environment map - карта окружения')" onmouseout="hide()">.envMap
- интенсивность карты окружения')" onmouseout="hide()">.envMapIntensity
Свойство масштабирует влияние карты окружения умножением своего цвета.
является стандартным материалом сетки')" onmouseout="hide()">.isMeshStandardMaterial
Используется для проверки, является ли данный объект, или производные от него, стандартным материалом сетки. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
Карта освещения. Значением по умолчанию является null. Свойству lightMap требуется второй набор текстурных координат UV и поэтому будут игнорироваться свойства текстуры repeat и offset.
light map - карта освещения')" onmouseout="hide()">.lightMap
.lightMapIntensity
Интенсивность Intensity of the baked light. Значение по умолчанию равно 1.Карта цвета. Значением по умолчанию является null. Цвет текстурной карты модулируется рассеянным цветом.
map - карта')" onmouseout="hide()">.map
.metalness
Свойство определяет, насколько материал похож на металл.
Для неметаллических материалов, вроде дерева или камня, используется значение 0.0, для металлических - используется 1.0, остальные материалы (обычно) в промежутке между этими значениями.
Значение по умолчанию равно 0.5. Значение между 0.0 и 1.0 может использоваться для передачи вида ржавого металла. Если также представлено свойство metalnessMap, оба значения перемножаются.Канал синего цвета данной текстуры используется для передачи изменения металличности (свойство metalness) этого материала.
metalness map - карта металличности,
т.е. "похожести" на металл')" onmouseout="hide()">.metalnessMap
morphing normals - нормали морфинга')" onmouseout="hide()">.morphNormals
Свойство определяет, будет ли материал использовать нормали морфинга. Установите его как true для передачи атрибутов
morphNormals из
Geometry в шейдер. Значением по умолчанию является false..morphTargets
Свойство определяет, будет ли материал использовать цели морфинга. Значением по умолчанию является false.Текстура для создания карты нормалей. Значения RGB влияют на нормаль поверхности каждого пиксельного фрагмента и изменяют способ and change the way the color is lit. Карты нормалей не изменяют действующую форму поверхности и влияют только на освещение.
normal map - карта нормалей')" onmouseout="hide()">.normalMap
.normalMapType
Тип карты нормалей.Можно выбирать из THREE.TangentSpaceNormalMap (значение по умолчанию) и THREE.ObjectSpaceNormalMap.
Свойство определяет, насколько сильно карта нормалей влияет на материал. Типовой диапазон значений от 0 до 1. Значением по умолчанию является двумерный вектор, установленный как (1,1).
normal scale - масштаб нормалей')" onmouseout="hide()">.normalScale
.refractionRatio
или сокращенно - IOR')" onmouseout="hide()">Показатель преломления воздуха (примерно равный 1) разделенный на показатель преломления материала. Он используется с режимами картирования окружения THREE.CubeRefractionMapping и THREE.EquirectangularRefractionMapping. Коэффициент преломления не должен превышать 1. Значение по умолчанию равно 0.98.
.roughness
Свойство определяет, насколько шероховатым (неровным) выглядит материал. Значение 0.0 означает ровное зеркальное отражение, 1.0 - полное рассеяние.
Значение по умолчанию равно 0.5. Если также представлено свойство roughnessMap, оба значения перемножаются.Канал зеленого цвета данной текстуры используется для изменения шероховатости материала.
roughness map - карта шероховатости')" onmouseout="hide()">.roughnessMap
3D-модели полигональной сеткой)')" onmouseout="hide()">.skinning
Свойство определяет, будет ли использоватья skinning - процесс создания кожи
- операция обворачивания 3D-модели
полигональной сеткой.')" onmouseout="hide()">скиннинг (skinning). Значением по умолчанию является false.
.wireframe
Свойство позволяет отобразить геометрическую фигуру в виде каркаса. Значением по умолчанию является false (т.е. каркас не виден и визуализация происходит при помощи плоских многоугольников)..wireframeLinecap
Определяет внешний вид концов линии. Возможные значения: butt (торец), round (круглый) и square (квадратный). Значение по умолчанию round - круглый.Данное свойство соответствует свойству linecap в 2D Canvas и игнорируется WebGL визуализатором (рендерером). Вот эта статья о linecap на русском языке.
.wireframeLinejoin
Определяет внешний вид соединений линии. Возможные значения: round - круглый, bevel (скос) и miter
(митра - головной убор, часть богослужебного облаченияв ряде христианских церквей. В данном случае это
остроконечная католическая митра (в православии митра
округлая), что и определяет вид соединения линий.')" onmouseout="hide()">митра). Значение по умолчанию round - круглый.
Данное свойство соответствует свойству lineJoin в 2D Canvas и игнорируется WebGL визуализатором (рендерером). Вот эта статья о lineJoin на русском языке.
.wireframeLinewidth
Управляет толщиной линии каркаса. Значение по умолчанию равно 1.
Методы
Для информации об общих методах смотрите базовый класс Material.Исходники
Material → MeshPhongMaterial →
MeshToonMaterial
Расширение MeshPhongMaterial с тоновой штриховкой. with toon shading.Пример
webgl / materials / variations / toon
Конструктор
MeshToonMaterial( parameters )
parameters - объект с одним или несколькими свойствами, определяющими внешний вид материала (дополнительный, необязательный параметр).
Здесь можно передать любое свойство материала (включая любое свойство унаследованное от Material
и MeshStandardMaterial).
Свойства
Для информации об общих свойствах смотрите базовые классы Material и MeshPhongMaterial.Карта градиента для тоновой штриховки. Gradient map for the toon shading. По умолчанию значение равно null.
gradient map - карта градиента')" onmouseout="hide()">.gradientMap
.isMeshToonMaterial
Используется для проверки, является ли данный объект, или производные от него, тонированным материалом сетки. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.defines
Объект в виде:
{ 'TOON': '' };
Он используется WebGLRenderer'ом для выбора шейдеров.Методы
Для информации об общих методах смотрите базовые классы Material и MeshPhongMaterial.Исходники
Material →
PointsMaterial
Материал, по умолчанию используемый классом Points.Пример
// This will add a starfield to the background of a scene // Этот код добавит звездное поле на задний план сцены var starsGeometry = new THREE.Geometry();
for ( var i = 0; i < 10000; i ++ ) { var star = new THREE.Vector3(); star.x = THREE.Math.randFloatSpread( 2000 ); star.y = THREE.Math.randFloatSpread( 2000 ); star.z = THREE.Math.randFloatSpread( 2000 );
starsGeometry.vertices.push( star ); }
var starsMaterial = new THREE.PointsMaterial( { color: 0x888888 } ); var starField = new THREE.Points( starsGeometry, starsMaterial );
scene.add( starField );
Другие примеры
misc / controls / fly webgl / buffergeometry / drawcalls webgl / BufferGeometry / points webgl / BufferGeometry / points / interleaved webgl / camera webgl / geometry / convex webgl / geometry / shapes webgl / interactive / raycasting / points webgl / multiple / elements / text webgl / points / billboards webgl / points / billboards / colors webgl / points / dynamic webgl / points / random webgl / points / sprites webgl / trails
Конструктор
PointsMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material.Цвет материала, по умолчанию устанавливается как белый (0xffffff).
color - цвет')" onmouseout="hide()">.color
.isPointsMaterial
Используется для проверки, является ли данный объект, или производные от него, материалом точек. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.lights
Свойство определяет, будет ли освещение влиять на материал. Значением по умолчанию является false.Свойство устанавливает цвет точек используя данные из Texture.
map - карта')" onmouseout="hide()">.map
.size
Свойство устанавливает размер точек. Значение по умолчанию равно 1.0..sizeAttenuation
Свойство определяет, будет ли размер точек уменьшаться с расстоянием. Значением по умолчанию является true.Методы
Для информации об общих методах смотрите базовый класс Material.Исходники
ShaderMaterial →
RawShaderMaterial
Данный класс работает также как класс ShaderMaterial, за исключением того, что определения встроенных атрибутов и униформ не добавляются автоматически к коду шейдера GLSL.Пример
var material = new THREE.RawShaderMaterial( {
uniforms: {
time: { value: 1.0 }
},
vertexShader: document.getElementById( 'vertexShader' ).textContent,
fragmentShader: document.getElementById( 'fragmentShader' ).textContent,
} );
Другие примеры
WebGL / buffergeometry / rawshader WebGL / buffergeometry / instancing / billboards WebGL / buffergeometry / instancing / dynamic WebGL / buffergeometry / instancing / interleaved / dynamic WebGL / buffergeometry / instancing WebGL / interactive / instances / gpu WebGL / raymarching / reflect
Конструктор
RawShaderMaterial( parameters )
parameters - объект с одним или несколькими свойствами, определяющими внешний вид материала (дополнительный, необязательный параметр).
Здесь можно передать любое свойство материала (включая любое свойство унаследованное от Material и ShaderMaterial).
Свойства
Для информации об общих свойствах смотрите базовые классы Material и ShaderMaterial..isRawShaderMaterial
Используется для проверки, является ли данный объект, или производные от него, материалами необработанных шейдеров. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
Методы
Для информации об общих методах смотрите базовые классы Material и ShaderMaterial.Исходники
Material →
ShaderMaterial
Материал отображаемый с помощью собственных (заказных) шейдеров. Шейдер - это небольшая программа, написанная на языке GLSL для запуска наблок графической обработки, т.е. видеокарта')" onmouseout="hide()">GPU. Можно использовать заказной шейдер, если требуется:
- реализовать эффект не включенный ни в один из встроенных материалов
- для повышения производительности объединить несколько объектов в одной Geometry или BufferGeometry
- ShaderMaterial будет отображаться только с помощью WebGLRenderer, поскольку GLSL-код в свойствах vertexShader и fragmentShader должен быть скомпилирован и запущен на графическом процессоре, использующим WebGL.
- Начиная с версии THREE r72, в ShaderMaterial больше не поддерживается прямое назначение атрибутов. Взамен следует использовать экземпляр BufferGeometry (вместо экземпляра Geometry), воспользовавшися экземплярами BufferAttribute для определения настраиваемых атрибутов.
- Начиная с версии THREE r77, экземпляры WebGLRenderTarget или WebGLRenderTargetCube не должны больше использоваться как униформы. Вместо этого нужно воспользоваться свойством их текстуры.
- Встроенные атрибуты и униформы передаются шейдерам вместе с кодом. Если не требуется, чтобы WebGLProgram добавляла что-либо к коду шейдера, вместо данного класса можно использовать RawShaderMaterial.
- Для того, чтобы развернуть цикл for в GLSL с помощью препроцессора шейдера можно использовать директиву #pragma unroll_loop.
Директива должна располагаться непосредственно над циклом. Форматирование цикла должно соответствовать определенному стандарту:
○ цикл должен быть нормализован
○ переменной цикла должна быть i
○ цикл должен использовать определенное форматирование пробелов.#pragma unroll_loop for ( int i = 0; i < 10; i ++ ) {
// ...
}
Пример
var material = new THREE.ShaderMaterial( {
uniforms: {
time: { value: 1.0 },
resolution: { value: new THREE.Vector2() }
},
vertexShader: document.getElementById( 'vertexShader' ).textContent,
fragmentShader: document.getElementById( 'fragmentShader' ).textContent
} );
Другие примеры
... показать
webgl / animation / cloth webgl / buffergeometry / custom / attributes / particles webgl / buffergeometry / selective / draw webgl / custom / attributes webgl / custom / attributes / lines webgl / custom / attributes / points webgl / custom / attributes / points2 webgl / custom / attributes / points3 webgl / depth / texture webgl / gpgpu / birds webgl / gpgpu / protoplanet webgl / gpgpu / water webgl / hdr webgl / interactive / points webgl / kinect webgl / lights / hemisphere webgl / marchingcubes webgl / materials / bumpmap / skin webgl / materials / envmaps webgl / materials / lightmap webgl / materials / parallaxmap webgl / materials / shaders / fresnel webgl / materials / skin webgl / materials / texture / hdr webgl / materials / wireframe webgl / modifier / tessellation webgl / nearestneighbour webgl / postprocessing / dof2 webgl / postprocessing / godrays
Шейдеры вершин и фрагментов
Для любого материала можно задать два разных вида шейдеров:- Вначале запускается вершинный шейдер (vertex shader); он принимает атрибуты, вычисляет/управляет положение каждой отдельной вершиной и передает дополнительные данные шейдеру фрагмента.
- Вторым номером запускается шейдер фрагмента (fragment shader); он устанавливает цвет каждого отдельного фрагмента (пикселя) отображаемого на экране.
- Униформы (uniforms) - это переменные, что имеют единообразное значение для всех вершин; освещение, туман и карты тени - вот примеры данных, которые будут храниться в униформах. Обращаться к униформам можно как с помощью вершинного шейдера, так и с помощью шейдера фрагментов.
- Атрибуты (attributes) - это переменные, связанные с каждой вершиной - например, положение вершины, нормаль к грани и цвет вершины - это все примеры данных, которые будут хранится в атрибутах. Атрибуты могут быть доступны только внутри вершинного шейдера.
- Вариации (varyings) - это переменные, которые передаются из вершинного шейдера в шейдер фрагмента. Для каждого фрагмента значение каждой вариации будет плавно интерполироваться из значений смежных вершин.
Встроенные атрибуты и униформы
По умолчанию WebGLRenderer предоставляет шейдерам множество атрибутов и униформов; определения этих переменных добавляются в код fragmentShader и vertexShader с помощью WebGLProgram при компиляции шейдера; отдельно объявлять их самих не требуется. Подробнее об этих переменных смотрите в описании WebGLProgram.Некоторые из этих униформ или атрибутов (например связанные с освещением, туманом и т.д.) требуют установки свойств материала, чтобы WebGLRenderer мог скопировать соответствующие значения для
- блок графической обработки - видеокарта')" onmouseout="hide()">GPU - не забудьте установить эти флаги, если хотите в своем собственном шейдере использовать данные функции.
Если не требуется, чтобы WebGLProgram добавляла что-либо к коду шейдера, вместо данного класса можно использовать RawShaderMaterial.
Настраиваемые атрибуты и униформы
Оба типа переменных (и настраиваемые атрибуты, и униформы), должны быть объявлены в GLSL коде шейдера (внутри vertexShader и/или fragmentShader). Настраиваемые униформы должны быть определены также как в свойстве uniforms вашего ShaderMaterial, тогда как любые настраиваемые атрибуты должны быть определены через экземпляры BufferAttribute. Обратите внимание, что вариации должны объявляться только внутри кода шейдера (не в материале).Для объявления настраиваемого атрибута за общими сведениями обратитесь к описанию BufferGeometry, а подробности API BufferAttribute можно увидеть в описании BufferAttribute.
При создании собственных атрибутов имейте ввиду, что каждый типизированный массив для хранения данных вашего атрибута, должен быть кратным размеру вашего типа данных. Например, если типом атрибута будет THREE.Vector3 и в вашей BufferGeometry имеется 3000 вершин, то величина создаваемого типизированного массива должна иметь длину 3000 * 3 или 9000 (т.е. одно значение на каждый элемент). Для справки ниже приведена таблица размеров для каждого типа данных:
Размеры атрибутов
| Тип GLSL GLSL type | Тип JavaScript JavaScript type | Размер Size |
| float | Number | 1 |
| vec2 | THREE.Vector2 | 2 |
| vec3 | THREE.Vector3 | 3 |
| vec3 | THREE.Color | 3 |
| vec4 | THREE.Vector4 | 4 |
Для объявления настраиваемой униформы воспользуйтесь свойством uniforms:
uniforms: {
time: { value: 1.0 },
resolution: { value: new THREE.Vector2() }
}Конструктор
ShaderMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material..clipping
Свойство определяет, будет ли данный материал поддерживать обрезку; чтобы разрешить визуализатору передать униформы clippingPlanes установите true. Значением по умолчанию является false..defaultAttributeValues
Эти значения по умолчанию будут переданы шейдерам в случае, когда материал создан, а визуализируемый геометрический элемент не содержит этих атрибутов. Это позволяет избежать ошибок при отсутствии данных в буфере.
this.defaultAttributeValues = {
'color': [ 1, 1, 1 ],
'uv': [ 0, 0 ],
'uv2': [ 0, 0 ]
};.defines
Свойство определяет настраиваемые константы при помощи директив #define внутри GLSL-кода как в шейдере вершин, так и в шейдере фрагментов; каждая пара ключ/значение выведет новую директиву:
defines: {
FOO: 15,
BAR: true
}
выдаст в коде GLSL строки
#define FOO 15 #define BAR true
.extensions
Объект со следующими свойствами:
this.extensions = {
derivatives: false, // set to use derivatives (установить при использовании производных)
fragDepth: false, // set to use fragment depth values (установить при использовании значений глубины фрагмента)
drawBuffers: false, // set to use draw buffers (установить при использовании буферов рисования)
shaderTextureLOD: false // set to use shader texture LOD (установить при использовании
// шейдера текстуры с уровнями детализации)
};.fog
Свойство определяет, будет ли цвет материала зависеть от параметров глобального тумана; установите как true для передачи униформов тумана в шейдер. По умолчанию значение равно false..fragmentShader
Fragment shader GLSL code. This is the actual code for the shader. In the example above, the vertexShader and fragmentShader code is extracted from the DOM; it could be passed as a string directly or loaded via AJAX instead..index0AttributeName
If set, this calls gl.bindAttribLocation to bind a generic vertex index to an attribute variable. По умолчанию значение равно undefined..isShaderMaterial
Используется для проверки, является ли данный объект, или производные от него, материалами шейдера. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.lights
Defines whether this material uses lighting; true to pass uniform data related to lighting to this shader. Значением по умолчанию является false..linewidth
Свойство управляет толщиной линий каркаса. По умолчанию значение равно 1.
morphing normals - нормали морфинга')" onmouseout="hide()">.morphNormals
Свойство определяет, будет ли материал использовать нормали морфинга. Установите его как true для передачи атрибутов
morphNormals из
Geometry в шейдер. Значением по умолчанию является false..morphTargets
Свойство определяет, будет ли материал использовать цели морфинга.
Установите его как true для передачи атрибутов morphTargets в шейдер.
Значением по умолчанию является false.Скомпилированная шейдерная программа, связанная с данным материалом; созданная с помощью WebGLRenderer. Доступ к этому свойству не требуется.
program - программа')" onmouseout="hide()">.program
.flatShading
Define whether the material is rendered with flat shading. Значением по умолчанию является false.
3D-модели полигональной сеткой)')" onmouseout="hide()">.skinning
Свойство определяет, будет ли материал использовать skinning - процесс создания кожи
- операция обворачивания 3D-модели
полигональной сеткой.')" onmouseout="hide()">скиннинг (skinning); установите его как true для передачи атрибутов скиннинга в шейдер. Значением по умолчанию является false.
.uniforms
Объект в виде: { "uniform1": { value: 1.0 }, "uniform2": { value: 2 } }
определяет униформы, передаваемые в код шейдера; ключами являются названия униформов, значениями - определения в виде: { value: 1.0 }, где value является значением униформа.
Названия должны совпадать с названием униформа, установленного в коде GLSL.
Обратите внимание, что униформы обновляются на каждом кадре, так что обновление значения униформа будет происходить сразу, как только обновление значения станет доступным GLSL-коду..vertexColors
Свойство определяет, как окрашиваются вершины, путем задания способа заполнения атрибута цвета.
Возможными значениями являются no colors - не окрашено')" onmouseout="hide()">THREE.NoColors,
face colors - цвета граней')" onmouseout="hide()">THREE.FaceColors и
vertex colors - цвета вершин')" onmouseout="hide()">THREE.VertexColors. Значение по умолчанию THREE.NoColors.
.vertexShader
Код GLSL вершинного шейдера. Для шейдера он является действующим кодом. В примере выше, код вершинного шейдера (vertexShader) и шейдера фрагмента (fragmentShader) извлекается из DOM;
вместо этого, он мог быть передан напрямую, в виде строки или загружен через AJAX..wireframe
Свойство определяет, отображать ли геометрический элемент как каркас (применяется GL_LINES вместо GL_TRIANGLES).
Значением по умолчанию является false (т.е. каркас не виден и визуализация происходит при помощи плоских многоугольников)..wireframeLinewidth
Свойство управляет толщиной линий каркаса. Значение по умолчанию равно 1.
Методы
Для информации об общих методах смотрите базовый класс Material.Метод генерирует мелкие копии данного материала. Обратите внимание на то, что vertexShader и fragmentShader копируются по ссылке, так как являются определениями атрибутов; это означает что клоны данного материала будут совместно использовать одну и ту же скомпилированную WebGLProgram. А вот униформы копируются по значению, что позволяет иметь различные наборы униформ для разных копий материала.
clone - клонировать')" onmouseout="hide()">.clone( )
this - этот')" onmouseout="hide()">this
Исходники
Material → ShaderMaterial →
ShadowMaterial
Данный материал может принимать тени, но в остальном он полностью прозрачен (На русский язык shadow material можно перевести как теневой материал, или материал для тени).Пример
var planeGeometry = new THREE.PlaneGeometry( 2000, 2000 ); planeGeometry.rotateX( - Math.PI / 2 );
var planeMaterial = new THREE.ShadowMaterial(); planeMaterial.opacity = 0.2;
var plane = new THREE.Mesh( planeGeometry, planeMaterial ); plane.position.y = -200; plane.receiveShadow = true; scene.add( plane );
Другие примеры
geometry / spline / editor
Конструктор
ShadowMaterial( parameters )
parameters - объект с одним или несколькими свойствами, определяющими внешний вид материала (дополнительный, необязательный параметр).
Здесь можно передать любое свойство материала (включая любое свойство унаследованное от Material и ShaderMaterial).
Свойства
Для информации об общих свойствах смотрите базовые классы Material и ShaderMaterial..isShadowMaterial
Используется для проверки, является ли данный объект, или производные от него, теневыми материалами. По умолчанию значение равно true.Не нужно его изменять, так как внутри three.js оно используется для оптимизации.
.lights
Свойство устанавливает, будет или нет освещение влиять на материал. Значением по умолчанию является true..transparent
Определяет будет ли данный материал прозрачным или нет. Значением по умолчанию является true.Методы
Для информации об общих методах смотрите базовые классы Material и ShaderMaterial.Исходники
Material →
SpriteMaterial
Материал для использования со Sprite.Пример
var spriteMap = new THREE.TextureLoader().load( 'textures/sprite.png' );
var spriteMaterial = new THREE.SpriteMaterial( { map: spriteMap, color: 0xffffff } );
var sprite = new THREE.Sprite( spriteMaterial ); sprite.scale.set(200, 200, 1)
scene.add( sprite );
Другие примеры
WebGL / sprites misc / ubiquity / test misc / ubiquity / test2 software / sandbox svg / sandbox webgl / materials / cubemap / dynamic
Конструктор
SpriteMaterial( parameters )
Свойства
Для информации об общих свойствах смотрите базовый класс Material..color
Цвет материала, по умолчанию устанавливается как белый цвет (0xffffff).
Карта текстуры (map) перемножается с этим цветом..fog
Свойство устанавливает, будет или нет туман на сцене влиять на материал. Значением по умолчанию является false..lights
Свойство устанавливает, будет или нет освещение влиять на материал. Значением по умолчанию является false..mapКарта текстуры. Значением по умолчанию является null.
.rotation
Угол поворота спрайта, в радианах. Значением по умолчанию является 0.
