36 lines
1010 B
Markdown
36 lines
1010 B
Markdown
|
|
# CameraRenderer::SetObjectIdPass
|
||
|
|
|
||
|
|
**命名空间**: `XCEngine::Rendering`
|
||
|
|
|
||
|
|
**类型**: `method`
|
||
|
|
|
||
|
|
**头文件**: `XCEngine/Rendering/Execution/CameraRenderer.h`
|
||
|
|
|
||
|
|
## 签名
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
void SetObjectIdPass(std::unique_ptr<RenderPass> objectIdPass);
|
||
|
|
```
|
||
|
|
|
||
|
|
## 作用
|
||
|
|
|
||
|
|
替换当前 object-id 阶段使用的独立 `RenderPass` 实例。
|
||
|
|
|
||
|
|
## 当前实现行为
|
||
|
|
|
||
|
|
1. 如果旧 `m_objectIdPass` 非空,先调用 `Shutdown()`。
|
||
|
|
2. 接管新的 `objectIdPass`。
|
||
|
|
3. 如果传入空指针,则自动回退到 `Passes::BuiltinObjectIdPass`。
|
||
|
|
|
||
|
|
## 关键语义
|
||
|
|
|
||
|
|
- 这里接收的是通用 `RenderPass`,不是已经移除的专用 `ObjectIdPass` 基类。
|
||
|
|
- `CameraRenderer::Render()` 只有在 `request.objectId.IsRequested()` 为真时才会执行这里持有的 pass。
|
||
|
|
- 该指针的所有权完全转移给 `CameraRenderer`;调用方不再负责释放。
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [GetObjectIdPass](GetObjectIdPass.md)
|
||
|
|
- [Render](Render.md)
|
||
|
|
- [BuiltinObjectIdPass](../../Passes/BuiltinObjectIdPass/BuiltinObjectIdPass.md)
|