# RHIRenderPass **命名空间**: `XCEngine::RHI` **类型**: `class (abstract)` **头文件**: `XCEngine/RHI/RHIRenderPass.h` **描述**: 渲染通道抽象接口,定义了渲染操作所需的附件配置和加载/存储行为。 ## 概述 `RHIRenderPass` 是 RHI 抽象层的渲染通道接口,用于描述渲染操作所需的附件配置。每个渲染通道定义了: - 颜色附件的数量和格式 - 深度/模板附件(可选) - 每个附件的加载操作(LoadAction) - 每个附件的存储操作(StoreAction) - 清除值(ClearValue) 渲染通道是延迟渲染和多渲染目标(MRT)等高级渲染技术的基础,它允许 GPU 预先知道帧缓冲配置,从而优化内存访问。 ## AttachmentDesc 结构体 ```cpp struct AttachmentDesc { Format format = Format::Unknown; LoadAction loadOp = LoadAction::Undefined; StoreAction storeOp = StoreAction::Store; LoadAction stencilLoadOp = LoadAction::Undefined; StoreAction stencilStoreOp = StoreAction::Undefined; ClearValue clearValue; }; ``` | 成员 | 类型 | 描述 | |------|------|------| | `format` | `Format` | 附件的像素格式 | | `loadOp` | `LoadAction` | 渲染前颜色数据的加载操作 | | `storeOp` | `StoreAction` | 渲染后颜色数据的存储操作 | | `stencilLoadOp` | `LoadAction` | 渲染前模板数据的加载操作 | | `stencilStoreOp` | `StoreAction` | 渲染后模板数据的存储操作 | | `clearValue` | `ClearValue` | 清除颜色值 | ## 公共方法 | 方法 | 描述 | |------|------| | [`Initialize`](initialize.md) | 初始化渲染通道 | | [`Shutdown`](shutdown.md) | 关闭渲染通道 | | [`GetNativeHandle`](get-native-handle.md) | 获取原生句柄 | | [`GetColorAttachmentCount`](get-color-attachment-count.md) | 获取颜色附件数量 | | [`GetColorAttachments`](get-color-attachments.md) | 获取颜色附件描述数组 | | [`GetDepthStencilAttachment`](get-depth-stencil-attachment.md) | 获取深度模板附件描述 | ## 使用示例 ```cpp #include // 配置颜色附件 AttachmentDesc colorAttachments[1]; colorAttachments[0].format = Format::RGBA8_UNORM; colorAttachments[0].loadOp = LoadAction::Clear; colorAttachments[0].storeOp = StoreAction::Store; colorAttachments[0].clearValue.color = { 0.0f, 0.0f, 0.0f, 1.0f }; // 配置深度附件(可选) AttachmentDesc depthAttachment; depthAttachment.format = Format::D24_UNORM_S8_UINT; depthAttachment.loadOp = LoadAction::Clear; depthAttachment.storeOp = StoreAction::Store; // 创建渲染通道 RHIRenderPass* renderPass = device->CreateRenderPass(1, colorAttachments, &depthAttachment); ``` ## 相关文档 - [RHIFramebuffer](../framebuffer/framebuffer.md) - 帧缓冲接口