# 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 级别 | | [`GetWidth`](get-size.md) | 获取宽度 | | [`GetHeight`](get-height.md) | 获取高度 | | [`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)