Files
XCEngine/docs/api/XCEngine/Rendering/Pipelines/BuiltinForwardPipeline/Render.md

1.4 KiB

BuiltinForwardPipeline::Render

执行一次内建前向渲染。

bool Render(
    const RenderContext& context,
    const RenderSurface& surface,
    const RenderSceneData& sceneData) override;

行为说明

当前实现会:

  1. 确保管线资源已初始化。
  2. 检查颜色附件是否存在。
  3. 在需要时把颜色附件从 stateBefore 转成 RenderTarget
  4. 绑定 render target、viewport 和 scissor。
  5. 清颜色和深度。
  6. 设置 pipeline state 与 primitive topology。
  7. 遍历 sceneData.visibleObjects,逐个发出 draw call。
  8. 在需要时把颜色附件从 RenderTarget 转回 stateAfter

参数

  • context - 当前渲染上下文。
  • surface - 当前目标表面。
  • sceneData - 提取好的相机和可见对象数据。

返回值

  • 成功返回 true
  • 初始化失败或没有颜色附件时返回 false

当前实现限制

  • 当前不会因为某个单独物体绘制失败而整体返回 false;内部 DrawVisibleObject() 的失败结果并没有汇总成整帧失败。
  • 当前没有多 pass 结构。
  • 当前默认总会清颜色;没有“只加载不清除”的 load/store 策略配置。

相关文档