--- outline: [2, 3] --- # OutlinePass - 源文件:`packages/sdk/src/passes/OutlinePass.ts` - 文档位置:`packages/docs/api/passes/OutlinePass.md` ## 类:`OutlinePass` - 作用:描边通道 用于为选中的对象添加描边效果 ### 构造函数 #### `new OutlinePass(scene: THREE.Scene, camera: THREE.Camera)` - 作用:构造函数 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `scene` | `THREE.Scene` | 是 | - 场景 | | `camera` | `THREE.Camera` | 是 | - 相机 | - 出参:`OutlinePass` - 返回说明:返回当前类实例。 ### 属性 | 属性名 | 可见性 | 类型 | 作用 | | --- | --- | --- | --- | | `scene` | `public` | `THREE.Scene` | 用于保存 `scene` 对应的数据。 | | `camera` | `public` | `THREE.Camera` | 用于保存 `camera` 对应的数据。 | | `outlinePass` | `public` | `any` | 用于保存 `outlinePass` 对应的数据。 | | `selectedObjects` | `public` | `THREE.Object3D[]` | 用于保存 `selectedObjects` 的集合数据。 | | `edgeStrength` | `public` | `THREE.UniformNode<"float", number>` | 描边参数 | | `edgeGlow` | `public` | `THREE.UniformNode<"float", number>` | 用于保存 `edgeGlow` 对应的数据。 | | `edgeThickness` | `public` | `THREE.UniformNode<"float", number>` | 用于保存 `edgeThickness` 对应的数据。 | | `pulsePeriod` | `public` | `THREE.UniformNode<"float", number>` | 用于保存 `pulsePeriod` 对应的数据。 | | `visibleEdgeColor` | `public` | `THREE.UniformNode<"color", THREE.Color>` | 用于保存 `visibleEdgeColor` 对应的数据。 | | `hiddenEdgeColor` | `public` | `THREE.UniformNode<"color", THREE.Color>` | 用于保存 `hiddenEdgeColor` 对应的数据。 | ### 方法 #### `init(): void` - 作用:初始化描边通道 - 入参:无 - 出参:`void` - 返回说明:无返回值。 #### `updateCamera(camera: THREE.Camera): void` - 作用:更新相机引用 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `camera` | `THREE.Camera` | 是 | - 新的相机 | - 出参:`void` - 返回说明:无返回值。 #### `getOutputNode(scenePass: any): any` - 作用:获取描边效果的输出节点 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `scenePass` | `any` | 是 | - 场景通道的输出节点 | - 出参:`any` - 返回说明:描边效果的输出节点 #### `addSelectedObject(object: THREE.Object3D): void` - 作用:添加要描边的对象 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `object` | `THREE.Object3D` | 是 | - 要添加的对象 | - 出参:`void` - 返回说明:无返回值。 #### `removeSelectedObject(object: THREE.Object3D): void` - 作用:移除要描边的对象 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `object` | `THREE.Object3D` | 是 | - 要移除的对象 | - 出参:`void` - 返回说明:无返回值。 #### `clearSelectedObjects(): void` - 作用:清空所有要描边的对象 - 入参:无 - 出参:`void` - 返回说明:无返回值。 #### `updateSelectedObjects(): void` - 作用:更新要描边的对象列表 - 入参:无 - 出参:`void` - 返回说明:无返回值。 #### `setEdgeStrength(value: number): void` - 作用:设置描边强度 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `value` | `number` | 是 | - 描边强度值 | - 出参:`void` - 返回说明:无返回值。 #### `setEdgeGlow(value: number): void` - 作用:设置描边 glow 效果 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `value` | `number` | 是 | - glow 效果值 | - 出参:`void` - 返回说明:无返回值。 #### `setEdgeThickness(value: number): void` - 作用:设置描边厚度 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `value` | `number` | 是 | - 描边厚度值 | - 出参:`void` - 返回说明:无返回值。 #### `setPulsePeriod(value: number): void` - 作用:设置描边脉冲周期 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `value` | `number` | 是 | - 脉冲周期值 | - 出参:`void` - 返回说明:无返回值。 #### `setVisibleEdgeColor(color: THREE.Color): void` - 作用:设置可见边的颜色 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `color` | `THREE.Color` | 是 | - 颜色值 | - 出参:`void` - 返回说明:无返回值。 #### `setHiddenEdgeColor(color: THREE.Color): void` - 作用:设置隐藏边的颜色 - 入参: | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `color` | `THREE.Color` | 是 | - 颜色值 | - 出参:`void` - 返回说明:无返回值。 #### `getSelectedObjects(): THREE.Object3D[]` - 作用:获取当前选中的对象列表 - 入参:无 - 出参:`THREE.Object3D[]` - 返回说明:选中的对象列表 ## 构造示例 - 当前 Demo 中没有直接展示 `OutlinePass` 的构造调用。 ## 函数示例 - 当前 Demo 中没有直接展示 `OutlinePass` 的公开方法调用。