Files
XCEngine/docs/api/XCEngine/Rendering/Extraction/RenderSceneExtractor/Extract.md

1.4 KiB

RenderSceneExtractor::Extract

RenderSceneData Extract(
    const Components::Scene& scene,
    Components::CameraComponent* overrideCamera,
    uint32_t viewportWidth,
    uint32_t viewportHeight) const;

行为说明

当前实现会:

  1. 调用 SelectCamera 解析实际使用的相机。
  2. 如果没有可用相机,直接返回空的 RenderSceneData
  3. 基于选中的相机和 viewport 尺寸生成 RenderCameraData
  4. 从场景所有 root game object 开始递归收集 visibleItems
  5. visibleItems 做稳定排序。
  6. 提取主方向光到 lighting

参数

  • scene - 要提取的场景。
  • overrideCamera - 可选的 override 相机;可用时具有最高优先级。
  • viewportWidth - 当前 viewport 宽度。
  • viewportHeight - 当前 viewport 高度。

返回值

  • 一份 RenderSceneData
  • 若没有可用相机,返回值中的 camera 为空,visibleItems 也为空。

当前实现细节

  • 当前会使用选中相机的 GetCullingMask() 过滤对象层。
  • visibleItems 是当前真正的输出字段,不是旧文档里的 visibleObjects
  • 排序时会按 renderQueue 和透明/非透明距离方向处理。

相关文档