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

2.3 KiB
Raw Blame History

OpenGLRenderTargetView

命名空间: XCEngine::RHI

描述: OpenGL 渲染目标视图实现,用于将纹理绑定为渲染目标进行渲染输出。

类型定义

RenderTargetType

enum class RenderTargetType {
    Texture2D,           // 2D 纹理
    Texture2DArray,      // 2D 纹理数组
    Texture3D,           // 3D 纹理
    TextureCube,         // 立方体贴图
    TextureCubeArray     // 立方体贴图数组
};

OpenGLRenderTargetViewDesc

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 初始化渲染目标视图2 个重载)
InitializeCubemap 初始化立方体贴图渲染目标视图
Shutdown 关闭渲染目标视图
Bind 绑定渲染目标视图2 个重载)
Unbind 解绑渲染目标视图
Clear 清除2 个重载)
GetFramebuffer 获取帧缓冲
GetTexture 获取纹理
GetMipLevel 获取 Mip 级别
BindFramebuffer 绑定帧缓冲
UnbindFramebuffer 解绑帧缓冲

使用示例

#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();
}

相关文档