1.4 KiB
1.4 KiB
BuiltinForwardPipeline::Render
执行一次内建前向渲染。
bool Render(
const RenderContext& context,
const RenderSurface& surface,
const RenderSceneData& sceneData) override;
行为说明
当前实现会:
- 确保管线资源已初始化。
- 检查颜色附件是否存在。
- 在需要时把颜色附件从
stateBefore转成RenderTarget。 - 绑定 render target、viewport 和 scissor。
- 清颜色和深度。
- 设置 pipeline state 与 primitive topology。
- 遍历
sceneData.visibleObjects,逐个发出 draw call。 - 在需要时把颜色附件从
RenderTarget转回stateAfter。
参数
context- 当前渲染上下文。surface- 当前目标表面。sceneData- 提取好的相机和可见对象数据。
返回值
- 成功返回
true。 - 初始化失败或没有颜色附件时返回
false。
当前实现限制
- 当前不会因为某个单独物体绘制失败而整体返回
false;内部DrawVisibleObject()的失败结果并没有汇总成整帧失败。 - 当前没有多 pass 结构。
- 当前默认总会清颜色;没有“只加载不清除”的 load/store 策略配置。