Files
XCEngine/docs/api/XCEngine/Rendering/Execution/CameraRenderer/SetObjectIdPass.md

36 lines
1010 B
Markdown
Raw Normal View History

# 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)