55 lines
1.6 KiB
Markdown
55 lines
1.6 KiB
Markdown
|
|
# RHIFramebuffer
|
|||
|
|
|
|||
|
|
**命名空间**: `XCEngine::RHI`
|
|||
|
|
|
|||
|
|
**类型**: `class (abstract)`
|
|||
|
|
|
|||
|
|
**头文件**: `XCEngine/RHI/RHIFramebuffer.h`
|
|||
|
|
|
|||
|
|
**描述**: 帧缓冲抽象接口,封装渲染目标帧缓冲的创建和管理。
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
`RHIFramebuffer` 是 RHI 抽象层的帧缓冲接口,用于管理渲染目标(Render Target)的帧缓冲对象。它代表一个可用的帧缓冲结构,包含颜色附件、深度附件和模板附件。不同图形 API 后端(OpenGL、D3D12)通过实现此接口提供各自的帧缓冲管理机制。
|
|||
|
|
|
|||
|
|
帧缓冲是渲染管线中的核心对象,用于:
|
|||
|
|
- 存储渲染操作的颜色、深度、模板数据
|
|||
|
|
- 作为纹理输入传递给后续渲染步骤
|
|||
|
|
- 支持多重渲染目标(MRT)和延迟渲染
|
|||
|
|
|
|||
|
|
## 公共方法
|
|||
|
|
|
|||
|
|
| 方法 | 描述 |
|
|||
|
|
|------|------|
|
|||
|
|
| [`Initialize`](initialize.md) | 初始化帧缓冲 |
|
|||
|
|
| [`Shutdown`](shutdown.md) | 关闭帧缓冲 |
|
|||
|
|
| [`GetNativeHandle`](get-native-handle.md) | 获取原生句柄 |
|
|||
|
|
| [`GetWidth`](get-width.md) | 获取帧缓冲宽度 |
|
|||
|
|
| [`GetHeight`](get-height.md) | 获取帧缓冲高度 |
|
|||
|
|
| [`IsValid`](is-valid.md) | 检查帧缓冲是否有效 |
|
|||
|
|
|
|||
|
|
## 使用示例
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
#include <XCEngine/RHI/RHIFramebuffer.h>
|
|||
|
|
#include <XCEngine/RHI/RHIRenderPass.h>
|
|||
|
|
|
|||
|
|
// 通过 RHIDevice 创建帧缓冲
|
|||
|
|
RHIFramebuffer* framebuffer = device->CreateFramebuffer(
|
|||
|
|
renderPass,
|
|||
|
|
width, height,
|
|||
|
|
colorAttachmentCount,
|
|||
|
|
colorAttachments,
|
|||
|
|
depthStencilAttachment
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
if (framebuffer && framebuffer->IsValid()) {
|
|||
|
|
// 使用帧缓冲进行渲染
|
|||
|
|
framebuffer->Shutdown();
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
|
|||
|
|
- [RHIRenderPass](../render-pass/render-pass.md) - 渲染通道接口
|