Files
XCEngine/docs/api/XCEngine/Rendering/Planning/CameraRenderRequest/ObjectIdRenderRequest/ObjectIdRenderRequest.md

39 lines
1.4 KiB
Markdown
Raw Normal View History

# ObjectIdRenderRequest
**命名空间**: `XCEngine::Rendering`
**类型**: `struct`
**头文件**: `XCEngine/Rendering/Planning/CameraRenderRequest.h`
**描述**: 描述一份 camera request 是否需要额外输出 object-id 纹理,以及这份输出目标是否完整可用。
## 概述
`ObjectIdRenderRequest` 是 [CameraRenderRequest](../CameraRenderRequest.md) 里的辅助子请求用来把“主场景颜色输出”和“object-id 辅助输出”拆开描述。
它当前只持有一个字段:
| 字段 | 说明 |
|------|------|
| `surface` | object-id pass 要写入的目标表面,通常是单独的颜色附件 + 深度附件组合。 |
## 关键语义
- [IsRequested](IsRequested.md) 只回答“调用方有没有挂一个颜色附件过来”。
- [IsValid](IsValid.md) 才回答“这份 object-id 输出目标是否足够完整,可以真正执行 pass”。
- `CameraRenderer::Render()` 会在主场景之后检查并消费这个子请求。
## 真实使用位置
- 编辑器 scene viewport 会准备一张单独的 object-id render target并把它装进 `request.objectId.surface`
- `CameraRenderer::Render()``request.objectId.IsRequested()` 为真时,调用当前的 `ObjectIdPass` 执行辅助输出。
## 相关文档
- [CameraRenderRequest](../CameraRenderRequest.md)
- [IsRequested](IsRequested.md)
- [IsValid](IsValid.md)
- [CameraRenderer](../../../Execution/CameraRenderer/CameraRenderer.md)