Это базовый класс для большинства объектов в Verge3D, предоставляющий набор свойств и методов для манипулирования объектами в трехмерном пространстве.
Обратите внимание, что его можно использовать для группировки объектов с помощью метода .add(object), который добавляет объект в качестве дочернего, однако для этого лучше использовать Group.
Конструктор не принимает никаких аргументов.
Массив с анимационными клипами объекта.
Будет ли объект рендериться в карту теней. По умолчанию false
.
Массив с дочерними объектами объекта. Информацию о группировании объектов см. в Group.
Массив ограничителей, применяемых к объекту.
Пользовательский материал глубины, который будет использоваться при рендеринге на карту глубины. Может использоваться только в контексте меша. При создании теней с помощью DirectionalLight или SpotLight, если вы изменяете положение вершин в вершинном шейдере, вы должны указать пользовательский материал глубины (customDepthMaterial) для правильного рендеринга теней. По умолчанию — undefined
.
То же, что и customDepthMaterial, но используется с PointLight. По умолчанию — undefined
.
Если true
, дочерние объекты не будут рендериться. По умолчанию — false
.
Если этот параметр установлен, каждый кадр проверяется, находится ли объект во фрустуме камеры, перед отрисовкой объекта. В противном случае объект будет отображаться каждый кадр, даже если он не виден. По умолчанию true
.
Массив, указывающий группы, к которым принадлежит данный объект. Используется для группировки/ссылки на коллекции объектов.
Будет ли объект ренедириться в специальном пассе с увеличенной плотностью пикселей (HiDPI compositing). По умолчанию — false
.
Только для чтения. Уникальный номер данного экземпляра объекта.
Флаг только для чтения, указывающий что данный объект является экземпляром класса Object3D.
Принадлежность объекта к слою. Объект виден, только если у него есть хотя бы один общий слой с используемой Camera. Это свойство также можно использовать для отсеивания нежелательных объектов в тестах пересечения лучей при использовании Raycaster.
Матрица локального преобразования.
Если этот параметр установлен, рендер вычисляет матрицу положения (вращения или кватерниона) и масштаба каждый кадр, а также пересчитывает свойство matrixWorld. По умолчанию Object3D.DefaultMatrixAutoUpdate (true).
Глобальное преобразование объекта. Если у объекта Object3D нет родителя, то оно идентично локальному преобразованию .matrix.
По умолчанию — true
. Если установлен, рендер будет проверять каждый кадр, нуждается ли объект и его потомки в обновлении матриц. Если не установлен, вам нужно будет обновлять матрицы самостоятельно.
Если это значение установлено, matrixWorld вычисляется в текущем кадре, затем этот флаг сбрасывается false
. По умолчанию false
.
Этот параметр передается в шейдер и используется для расчета положения объекта.
Необязательное и не обязательно уникальное имя объекта. По умолчанию это пустая строка.
Эта матрица передается в шейдер и используется для расчета освещения объекта. Матрица получается транспонированием обратной верхней левой подматрицы 3x3 матрицы modelViewMatrix объекта.
Причина создания этой специальной матрицы заключается в том, что простое использование матрицы modelViewMatrix может привести к неединичной длине нормалей (при масштабировании) или неперпендикулярному направлению (при неравномерном масштабировании).
С другой стороны, часть с перемещением матрицы modelViewMatrix не имеет значения для расчета нормалей. Поэтому достаточно матрицы Matrix3.
Альфа-канал объекта. Используется для подачи на выход шейдерной ноды «Блендера» object info.
Цвет объекта. Используется для подачи на выход шейдерной ноды «Блендера» object info.
Индекс объекта. Используется для подачи на выход шейдерной ноды «Блендера» object info.
Необязательная функция обратного вызова, которая вызывается сразу после рендеринга объекта. Эта функция вызывается со следующими параметрами: renderer (рендерер), scene (сцена), camera(камера), geometry (геометрия), material (материал), group (группа).
Учтите, что данная функция вызывается только для объектов, которые можно «отрендерить», то есть для объектов, имеющих материал и геометрию: Mesh, Line, Points или Sprite. Экземпляры классов Object3D, Group и Bone не могут быть отрендерены, соответственно данная функция для них не вызывается.
Необязательная функция обратного вызова, которая вызывается непосредственно перед рендерингом объекта. Эта функция вызывается со следующими параметрами: renderer (рендерер), scene (сцена), camera(камера), geometry (геометрия), material (материал), group (группа).
Учтите, что данная функция вызывается только для объектов, которые можно «отрендерить», то есть для объектов, имеющих материал и геометрию: Mesh, Line, Points или Sprite. Экземпляры классов Object3D, Group и Bone не могут быть отрендерены, соответственно данная функция для них не вызывается.
Родитель объекта в [link:https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84_%D1%81%D1%86%D0%B5%D0%BD%D1%8B графе сцены]. У объекта может быть не более одного родителя.
Vector3, представляющий локальную позицию объекта. По умолчанию (0, 0, 0)
.
Локальное вращение объекта в виде кватерниона.
Принимает ли материал тени. По умолчанию false
.
Это значение позволяет переопределить порядок рендеринга объектов [link:https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84_%D1%81%D1%86%D0%B5%D0%BD%D1%8B графа сцены] по умолчанию, хотя непрозрачные и прозрачные объекты остаются отсортированными независимо. Когда это свойство установлено для экземпляра Group, все объекты-потомки будут отсортированы и отрисованы вместе. Сортировка производится от низшего к высшему порядку рендеринга. Значение по умолчанию - 0
.
Локальное вращение объекта (см. [link:https://ru.wikipedia.org/wiki/%D0%A3%D0%B3%D0%BB%D1%8B_%D0%AD%D0%B9%D0%BB%D0%B5%D1%80%D0%B0 Euler углы Эйлера]), в радианах.
Локальный масштаб объекта. По умолчанию Vector3(1, 1, 1).
Используется методом lookAt, например, для определения ориентации результата. По умолчанию это Object3D.DefaultUp — то есть (0, 1, 0)
.
Объект, который можно использовать для хранения пользовательских данных. Он не должен содержать ссылки на функции, так как они не будут клонироваться.
UUID данного экземпляра объекта. Он присваивается автоматически, поэтому его не следует редактировать.
Объект отображается, если true
. По умолчанию true
.
Статические свойства и методы определяются для каждого класса, а не для каждого экземпляра этого класса. Это означает, что изменение Object3D.DefaultUp или Object3D.DefaultMatrixAutoUpdate изменит значения up и matrixAutoUpdate для каждого экземпляра Object3D (или производных классов), созданный после внесения изменения (уже созданные Object3D не будут затронуты).
Направление по умолчанию up для объектов, также используется как положение по умолчанию для DirectionalLight, HemisphereLight и Spotlight (которые создают свет, светящий сверху вниз). По умолчанию имеет значение (0, 1, 0)
.
Настройка по умолчанию для matrixAutoUpdate для вновь созданных Object3D.
Для данного класса также доступны методы родительского класса EventDispatcher.
Добавляет object
в качестве дочернего объекта данного объекта. Может быть добавлено произвольное количество объектов. Любой текущий родитель объекта, переданного здесь, будет удален, так как объект может иметь не более одного родителя.
Информацию о ручном группировании объектов см. в Group.
Применяет матричное преобразование к объекту и обновляет положение, поворот и масштаб объекта.
Применяет к объекту вращение, представленное кватернионом.
Добавляет object
в качестве дочернего объекта, сохраняя положение объекта в мировой системе координат.
Метод не поддерживает графы сцен, включающие объект с неоднородными масштабированиями (по осям).
recursive — если true
, потомки объекта также клонируются. По умолчанию — true
.
Возвращает клон этого объекта и, по желанию, всех потомков.
recursive — если true
, потомки объекта также копируются. По умолчанию — true
.
Копирует заданный объект в этот объект. Примечание: обработчики событий и обратные вызовы (.onAfterRender и .onBeforeRender) не копируются.
id — уникальный номер экземпляра объекта
Выполняет поиск объекта и его дочерних элементов, начиная с самого объекта, и возвращает первый с совпадающим id
. Обратите внимание, что идентификаторы присваиваются в хронологическом порядке: 1, 2, 3, ..., увеличиваясь на единицу для каждого нового объекта.
name — строка для сопоставления с дочерним свойством Object3D.name.
Выполняет поиск объекта и его дочерних элементов, начиная с самого объекта, и возвращает первый с подходящим именем. Обратите внимание, что для большинства объектов имя по умолчанию является пустой строкой. Вам придется задать его вручную, чтобы воспользоваться этим методом.
Выполняет поиск по объекту и его дочерним объектам, начиная с самого объекта, и возвращает первый объект, свойство которого соответствует заданному значению.
Searches through an object and its children, starting with the object itself, and returns all the objects with a property that matches the value given.
target — результат будет скопирован в этот Vector3.
Возвращает вектор, представляющий направление положительной оси z объекта в мировом пространстве.
target
. По умолчанию используется target._order
.Возвращает эйлеровский угол поворота объекта в мировой системе координат.
target — результат будет скопирован в этот Vector3.
Возвращает вектор положения объекта в мировой системе координат.
target — результат будет скопирован в этот кватернион.
Возвращает кватернион вращения объекта в мировой системе координат.
target — результат будет скопирован в этот Vector3.
Возвращает вектор масштабирования, применяемого к объекту для каждой оси в мировом пространстве.
vector — вектор, представляющий позицию в локальном пространстве этого объекта.
Преобразует вектор из локального пространства этого объекта в мировое пространство.
Поворачивает объект лицом к точке в мировом пространстве.
Этот метод не поддерживает объекты с неоднородно масштабированными родителями.
Абстрактный (пустой) метод для получения пересечений между брошенным лучом и данным объектом. Подклассы, такие как Mesh, Line и Points, реализуют этот метод, чтобы реализовать функцию трассировки лучей.
Удаляет object
как дочерний объект данного объекта. Может быть удалено произвольное количество объектов.
Удаляет объект из своего родителя.
Удаляет все дочерние объекты.
Осуществляет поворот объекта вдоль оси в пространстве объекта. Предполагается, что ось нормализована.
Осуществляет поворот объекта вдоль оси в мировом пространстве. Предполагается, что ось нормализована. Метод предполагает отсутствие поворота родителя.
rad — угол поворота в радианах.
Поворачивает объект вокруг оси X в локальном пространстве.
rad — угол поворота в радианах.
Поворачивает объект вокруг оси Y в локальном пространстве.
rad — угол поворота в радианах.
Поворачивает объект вокруг оси Z в локальном пространстве.
Вызывает setFromAxisAngle(axis, angle) на .quaternion.
euler — угол Эйлера, определяющий величину поворота.
Вызывает setRotationFromEuler(euler) на .quaternion.
m — повернуть кватернион по компоненту вращения матрицы.
Вызывает setFromRotationMatrix(m) на .quaternion. Обратите внимание, что это предполагает, что верхние 3x3 из m
являются чистой матрицей вращения (т.е. немасштабированной).
q — нормализованный кватернион.
Копирует поворот объекта из заданного кватерниона в .quaternion.
Переносит объект на расстояние вдоль оси в пространстве объекта. Предполагается, что ось нормализована.
Перемещает объект вдоль оси X в пространстве объекта на distance
единиц.
Переводит объект вдоль оси Y в пространстве объекта на distance
единиц.
Перемещает объект вдоль оси Z в пространстве объекта на distance
единиц.
callback — функция обратного вызова, первым аргументом которой является объект Object3D.
Выполняет функцию для этого объекта и всех потомков. Примечание: не рекомендуется изменять граф сцены внутри обратного вызова.
callback — функция, первым аргументом которой является объект Object3D.
Аналогично traverse, но функция будет выполняться только для видимых объектов. Потомки невидимых объектов не обходятся. Примечание: Не рекомендуется изменять граф сцены внутри обратного вызова.
callback — функция обратного вызова, первым аргументом которой является объект Object3D.
Выполняет функцию для всех родителей объекта. Примечание: не рекомендуется изменять граф сцены внутри обратного вызова.
Обновляет матрицу локального положения объекта.
force — логическое значение, используемое чтобы пропустить требование флага .matrixWorldAutoUpdate и принудительно обновить матрицу. Полезно указывать, если вы не хотите ждать одного кадра для обновления матрицы (предполагая что .matrixWorldAutoUpdate установлен в true
).
Обновляет матрицу мирового положения объекта и его потомков если .matrixWorldNeedsUpdate установлен в true
или если флаг force
также установлен в true
.
Обновляет матрицу мирового положения объекта.
vector — вектор, представляющий положение в мировом пространстве.
Преобразует вектор из мирового пространства в локальное пространство этого объекта.
О том как получить исходный код этого модуля читайте тут.