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 相同以获得更一致的结果。

.influenceGroup : String

将受光照探头影响的场景对象限制为此组。 如果不是 null,则使用它 而不是 .influenceType.influenceDistance 来确定哪些对象应该受到影响。 默认值为 null,这意味着 .influenceType.influenceDistance 设置将 照常使用。

.influenceGroupInv : Boolean

如果 .influenceGroup 不为空,则此选项(如果为true)将使其 仅使不属于 .influenceGroup 的对象才会受到探测器 的影响。默认值为 false 。

.influenceType : Constant

定义影响体积的类型。可以是v3d.ReflectionProbeTypeInfinite(用于 Scene.worldEnvMapProbe 探头物体)、v3d.ReflectionProbeTypeSpherev3d.ReflectionProbeTypeBox。影响体积用于测试哪些对象受到探针的影响(简单地说是那些包含在体积内的对象)。默认为 v3d.ReflectionProbeTypeSphere

建议保持此值和 .parallaxDistance 相同以获得更一致的结果。

.matrixWorldInverse : Matrix4

matrixWorld的逆矩阵。

.parallaxDistance : Float

控制视差效果的球体/框有多大。如果 parallaxType 等于 v3d.ReflectionProbeTypeSphere,则此参数定义球体半径,如果 parallaxType 等于 v3d.ReflectionProbeTypeBox,则定义立方体边缘大小的一半。视差体积用于计算视差效果。默认值为 1。

建议保持此值和 .parallaxDistance 相同以获得更一致的结果。

.parallaxType : Constant

定义视差体积的类型。可以是v3d.ReflectionProbeTypeInfinite(用于 Scene.worldEnvMapProbe探头物体)、v3d.ReflectionProbeTypeSpherev3d.ReflectionProbeTypeBox。视差体积用于计算视差效果。默认为 v3d.ReflectionProbeTypeSphere

建议保持此值和 .parallaxDistance 相同以获得更一致的结果。

.probeClipEnd : Float

位于比此值更远的物体将不会出现在探头的环境贴图中。默认值为 100。

.probeClipStart : Float

距离该值更近的物体不会出现在探头的环境贴图中。默认值为 0.1。

.probeIntensity : Float

控制探头环境贴图的强度(曝光)。默认值为 1。

.renderTarget : WebGLRenderTarget

包含渲染环境贴图的 WebGLRenderTarget 实例。默认为空。调用 .update 方法后自动更新。

.type : String

一个字符串 'CubeReflectionProbe'。这可用于查找所有 CubeReflectionProbe 物体。不应该改变。

.visibilityGroup : String

如果不为 null,则仅将来自该组的物体渲染到环境贴图中(另请参阅 (see also Object3D.groupNames)。默认为空,这意味着不使用可见组并且探头渲染所有场景物体。

.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 方法中渲染环境贴图后执行的回调。在包含渲染结果的 cubeRT 参数中接收一个 WebGLCubeRenderTarget 实例。此函数返回的值必须是 WebGLCubeRenderTarget 的实例,并将用作最终的 WebGLCubeRenderTarget。默认情况下返回相同的cubeRT渲染目标。

每次调用 .update 时,可以覆盖此回调以将自定义更改应用于环境映射。如果其 IBL 环境模式设置为PMREM,则它已用于场景中的所有立方体反射探头。

.setSize(size : Integer) → null

size - 新环境贴图的大小。

设置环境贴图的大小。

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

scene - 用于渲染的场景。
renderer - WebGLRenderer 的实例。

将给定的场景渲染到探头的环境贴图中。渲染结果将在.renderTarget 属性中。

源代码

关于如何获取此模块的源代码,请查看 本页