1.7 KiB
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 | 把场景数据绘制到指定表面。 |
设计说明
把 RenderContext、RenderSurface 和 RenderSceneData 分开传入,是一个很好的职责拆分:
RenderContext代表底层执行环境。RenderSurface代表当前目标表面。RenderSceneData代表已经提取好的高层场景数据。
这样做能让同一条管线更容易在不同目标和不同场景上复用。