Object3D

CubeReflectionProbe

Световой зонд, который применяет окружение типа IBL к объектам, находящимся в зоне его влияния. Используется для добавления локального IBL в сцену.

Пример

const probe = new v3d.CubeReflectionProbe(); probe.update(scene, renderer); app.scene.add(probe);

Конструктор

CubeReflectionProbe(size : Integer)

size - (необязателен) размер текстуры. По умолчанию 256.

Создает новый CubeReflectionProbe.

Свойства

Общие свойства смотрите в базовом классе Object3D.

.influenceDistance : Float

Управляет размером сферы/куба влияния. Этот параметр определяет радиус сферы, если influenceType равно v3d.ReflectionProbeTypeSphere и половину размера грани куба, если influenceType равно v3d.ReflectionProbeTypeBox. Объем влияния используется для проверки того, на какие объекты влияет зонд (только на те, которые содержатся внутри объема). По умолчанию - 1.

Рекомендуется оставить это значение и .parallaxDistance одинаковыми для получения более стабильных результатов.

.influenceType : Constant

Определяет тип объема влияния. Может быть v3d.ReflectionProbeTypeInfinite (используется для объекта зонда Scene.worldEnvMapProbe), v3d.ReflectionProbeTypeSphere или v3d.ReflectionProbeTypeBox. Объем влияния используется для проверки того, на какие объекты влияет зонд (только на те, которые содержатся внутри объема). По умолчанию это v3d.ReflectionProbeTypeSphere.

Рекомендуется оставить это значение и .parallaxType одинаковыми для получения более стабильных результатов.

.matrixWorldInverse : Matrix4

Обратное значение matrixWorld.

.parallaxDistance : Float

Управляет размером сферы/куба для эффекта параллакса. Этот параметр определяет радиус сферы, если ParallaxType равно v3d.ReflectionProbeTypeSphere и половину размера грани куба, если ParallaxType равно v3d.ReflectionProbeTypeBox. Объем параллакса используется для расчета эффекта параллакса. По умолчанию равен 1.

Рекомендуется оставить это значение и .influenceDistance одинаковыми для получения более стабильных результатов.

.parallaxType : Constant

Определяет тип параллаксного объема. Может быть v3d.ReflectionProbeTypeInfinite (используется для объекта зонда Scene.worldEnvMapProbe), v3d.ReflectionProbeTypeSphere или v3d.ReflectionProbeTypeBox. Объем параллакса используется для расчета эффекта параллакса. По умолчанию это v3d.ReflectionProbeTypeSphere.

Рекомендуется оставить это значение и .influenceType одинаковыми для получения более стабильных результатов.

.probeClipEnd : Float

Объекты, расположенные дальше этого значения, не будут отображаться на карте окружения зонда. По умолчанию - 100.

.probeClipStart : Float

Объекты, расположенные ближе, чем это значение, не будут отображаться на карте окружения. По умолчанию 0,1.

.probeIntensity : Float

Управляет интенсивностью (экспозицией) карты окружения зонда. По умолчанию - 1.

.renderTarget : WebGLRenderTarget

Экземпляр WebGLRenderTarget, содержащий карту окружения для рендеринга. По умолчанию равен null. Обновляется автоматически после вызова метода .update.

.type : String

Строка 'CubeReflectionProbe'. Она может использоваться для поиска всех объектов CubeReflectionProbe. Не должно быть изменено.

.visibilityGroup : String

Если не null, то на карту окружения выводятся только объекты из этой группы (смотрите также Object3D.groupNames). По умолчанию равно null, что означает, что группа видимости не используется и зонд рендерит все объекты сцены.

.visibilityGroupInv : Boolean

Если .visibilityGroup не равно null, то этот параметр (если он равен true) делает так, что на карту окружения выводятся только объекты, не принадлежащие указанной .visibilityGroup. По умолчанию - false.

Методы

Общие методы смотрите в базовом классе Object3D.

.dispose() → null

Удалить из памяти ресурсы, связанные с целями рендеринга, используемыми этим объектом.

.intersectsMesh(mesh : Mesh) → Boolean

mesh - объект Mesh для проверки пересечений.

Проверяет, есть ли пересечение между объемом влияния зонда (смотрите .influenceDistance и .influenceType) и заданным объектом. Возвращает результат проверки. Точные вычисления зависят от .influenceType, например, для v3d.ReflectionProbeTypeInfinite метод всегда возвращает true.

.onUpdate(cubeRT : WebGLCubeRenderTarget) → WebGLRenderTarget

cubeRT - цель кубического рендеринга, содержащая карту окружения.

Обратный вызов, выполняемый после рендеринга карты окружения в методе .update. Получает экземпляр WebGLCubeRenderTarget в параметре cubeRT, который содержит результаты рендеринга. Значение, возвращаемое из этой функции, должно быть экземпляром WebGLRenderTarget и будет использоваться в качестве конечного .renderTarget. По умолчанию возвращает ту же cubeRT цель рендеринга.

Этот обратный вызов можно переопределить, чтобы применять пользовательские изменения к карте окружения при каждом вызове .update. Он уже используется для всех зондов кубического отражения в сцене, если режим среды IBL установлен на PMREM.

.setSize(size : Integer) → null

size - новый размер карты окружения.

Установите размер карты окружения.

.update(scene : Scene, renderer : WebGLRenderer) → null

scene - сцену для рендеринга.
renderer - экземпляр WebGLRenderer.

Рендеринг заданной сцены в карту окружения зонда. Результат рендеринга будет находиться в свойстве .renderTarget.

Исходный файл

О том как получить исходный код этого модуля читайте тут.