- resources: 更新 asyncloader, audioclip, mesh-import-settings, texture-loader 文档 - rhi: 更新 opengl render-target-view 文档 - components: 新增 camera-component 全部方法文档 (15个文件)
2.3 KiB
2.3 KiB
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();
}