deep-engine-demo/packages/docs/api/passes/OutlinePass.md
2026-04-19 18:46:28 +08:00

220 lines
5.2 KiB
Markdown

---
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.Object3DEventMap>[]`
- 作用:获取当前选中的对象列表
- 入参:无
- 出参:`THREE.Object3D<THREE.Object3DEventMap>[]`
- 返回说明:选中的对象列表
## 构造示例
- 当前 Demo 中没有直接展示 `OutlinePass` 的构造调用。
## 函数示例
- 当前 Demo 中没有直接展示 `OutlinePass` 的公开方法调用。