CubeReflectionProbe - Verge3D 用户手册 - Soft8Soft
Description: 了解如何在使用 Verge3D 制作的交互式 3D 应用程序中使用 CubeReflectionProbe

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.ReflectionProbeTypeSphere 或 v3d.ReflectionProbeTypeBox。影响体积用于测试哪些对象受到探针的影响（简单地说是那些包含在体积内的对象）。默认为 v3d.ReflectionProbeTypeSphere。
建议保持此值和 .parallaxDistance 相同以获得更一致的结果。

### # .matrixWorldInverse : Matrix4

matrixWorld的逆矩阵。

### # .parallaxDistance : Float

控制视差效果的球体/框有多大。如果 parallaxType 等于 v3d.ReflectionProbeTypeSphere，则此参数定义球体半径，如果 parallaxType 等于 v3d.ReflectionProbeTypeBox，则定义立方体边缘大小的一半。视差体积用于计算视差效果。默认值为 1。
建议保持此值和 .parallaxDistance 相同以获得更一致的结果。

### # .parallaxType : Constant

定义视差体积的类型。可以是v3d.ReflectionProbeTypeInfinite（用于 Scene.worldEnvMapProbe探头物体）、v3d.ReflectionProbeTypeSphere 或 v3d.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 属性中。

## 源代码

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