Files
XCEngine/docs/api/rhi/opengl/render-target-view/render-target-view.md
ssdfasd a1804f4cb0 docs: 更新 resources, rhi, scene 模块及新增 camera-component 方法文档
- resources: 更新 asyncloader, audioclip, mesh-import-settings, texture-loader 文档
- rhi: 更新 opengl render-target-view 文档
- components: 新增 camera-component 全部方法文档 (15个文件)
2026-03-26 02:00:45 +08:00

87 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpenGLRenderTargetView
**命名空间**: `XCEngine::RHI`
**描述**: OpenGL 渲染目标视图实现,用于将纹理绑定为渲染目标进行渲染输出。
## 类型定义
### RenderTargetType
```cpp
enum class RenderTargetType {
Texture2D, // 2D 纹理
Texture2DArray, // 2D 纹理数组
Texture3D, // 3D 纹理
TextureCube, // 立方体贴图
TextureCubeArray // 立方体贴图数组
};
```
### OpenGLRenderTargetViewDesc
```cpp
struct OpenGLRenderTargetViewDesc {
RenderTargetType type = RenderTargetType::Texture2D; // 渲染目标类型
int mipLevel = 0; // Mip 级别
int baseArraySlice = 0; // 数组起始索引
int arraySize = 1; // 数组大小
int layer = 0; // 层级(用于 3D 纹理)
uint32_t format = 0; // 格式
};
```
## 公共方法
| 方法 | 描述 |
|------|------|
| [`Initialize`](initialize.md) | 初始化渲染目标视图2 个重载) |
| [`InitializeCubemap`](initialize-cubemap.md) | 初始化立方体贴图渲染目标视图 |
| [`Shutdown`](shutdown.md) | 关闭渲染目标视图 |
| [`Bind`](bind.md) | 绑定渲染目标视图2 个重载) |
| [`Unbind`](unbind.md) | 解绑渲染目标视图 |
| [`Clear`](clear.md) | 清除2 个重载) |
| [`GetFramebuffer`](get-framebuffer.md) | 获取帧缓冲 |
| [`GetTexture`](get-texture.md) | 获取纹理 |
| [`GetMipLevel`](get-mip-level.md) | 获取 Mip 级别 |
| [`BindFramebuffer`](bind-framebuffer.md) | 绑定帧缓冲 |
| [`UnbindFramebuffer`](unbind-framebuffer.md) | 解绑帧缓冲 |
## 使用示例
```cpp
#include "XCEngine/RHI/OpenGL/OpenGLRenderTargetView.h"
void RenderToTexture() {
OpenGLRenderTargetView rtv;
// 初始化为 2D 纹理渲染目标
if (rtv.Initialize(textureID, 0)) {
rtv.Bind();
rtv.Clear(0.0f, 0.0f, 0.0f, 1.0f);
// 执行渲染...
rtv.Unbind();
}
rtv.Shutdown();
}
void RenderToCubemap() {
OpenGLRenderTargetView rtv;
// 初始化为立方体贴图的第一面
if (rtv.InitializeCubemap(cubemapID, 0, 0)) {
rtv.Bind();
rtv.Clear(0.0f, 0.0f, 0.0f, 1.0f);
// 执行渲染...
rtv.Unbind();
}
rtv.Shutdown();
}
```
## 相关文档
- [OpenGL 后端总览](../opengl.md)