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

1.2 KiB

RenderSceneExtractor::Extract

从场景中提取当前帧要渲染的数据。

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

行为说明

当前实现会:

  1. 选择一台可用相机。
  2. 根据相机和视口尺寸构造 RenderCameraData
  3. 从场景根对象开始递归遍历层级。
  4. 收集符合条件的 mesh 对象,输出 VisibleRenderObject 数组。

参数

  • scene - 要提取的场景。
  • overrideCamera - 显式指定的相机;若可用则优先级最高。
  • viewportWidth - 当前视口宽度。
  • viewportHeight - 当前视口高度。

返回值

  • 一份 RenderSceneData

当前实现说明

  • 当没有可用相机时,返回的 RenderSceneDatacamera == nullptr
  • 透视相机使用 Matrix4x4::Perspective,正交相机使用 Matrix4x4::Orthographic
  • 当前把 viewprojectionviewProjection 都以转置形式写入结果。

相关文档