Files
XCEngine/docs/api/XCEngine/Rendering/RenderPipeline/RenderPipeline.md

1.7 KiB

RenderPipeline

命名空间: XCEngine::Rendering

类型: class (abstract)

头文件: XCEngine/Rendering/RenderPipeline.h

描述: 定义渲染管线的统一接口,负责初始化、关闭和把 RenderSceneData 绘制到 RenderSurface

概述

RenderPipeline 是当前渲染模块最关键的扩展点之一。它把真正的绘制实现抽象成三个阶段:

  • 初始化管线资源
  • 关闭并释放资源
  • 执行一次渲染

这类接口和商业引擎里常见的 render pipeline abstraction 很接近,因为上层的 scene renderer 不应该知道具体是前向、延迟还是自定义渲染路径。

当前实现

当前公开的具体实现是:

SceneRenderer 默认也会创建这个内建前向管线。

公开方法

方法 说明
Destructor 虚析构函数。
Initialize 初始化这条渲染管线需要的底层资源。
Shutdown 释放管线资源。
Render 把场景数据绘制到指定表面。

设计说明

RenderContextRenderSurfaceRenderSceneData 分开传入,是一个很好的职责拆分:

  • RenderContext 代表底层执行环境。
  • RenderSurface 代表当前目标表面。
  • RenderSceneData 代表已经提取好的高层场景数据。

这样做能让同一条管线更容易在不同目标和不同场景上复用。

相关文档