Files
XCEngine/docs/api/XCEngine/Rendering/Planning/SceneRenderRequestPlanner/CollectCameras.md

1.2 KiB

SceneRenderRequestPlanner::CollectCameras

std::vector<Components::CameraComponent*> CollectCameras(
    const Components::Scene& scene,
    Components::CameraComponent* overrideCamera) const;

行为说明

当前实现按下面的顺序决定这次真正参与渲染规划的相机列表:

  1. 如果 overrideCamera 通过 SceneRenderRequestUtilsIsUsableCamera() 检查,则只返回这一台相机。
  2. 否则从 scene 里收集全部 CameraComponent
  3. 过滤掉不可用相机。
  4. 调用 SceneRenderRequestUtils::SortSceneCamerasForRendering(...) 做稳定排序。

返回值

  • 一个已经过滤并排序好的相机数组。
  • 如果没有任何可用相机,返回空数组。

当前排序语义

  • base 相机会排在 overlay 前面。
  • 同一 stack 类型内部再按 depth 升序。
  • 排序使用 std::stable_sort(),所以完全同键时仍保留场景原始枚举顺序。

相关文档