# RenderSceneExtractor::Extract 从场景中提取当前帧要渲染的数据。 ```cpp 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`。 ## 当前实现说明 - 当没有可用相机时,返回的 `RenderSceneData` 里 `camera == nullptr`。 - 透视相机使用 `Matrix4x4::Perspective`,正交相机使用 `Matrix4x4::Orthographic`。 - 当前把 `view`、`projection` 和 `viewProjection` 都以转置形式写入结果。 ## 相关文档 - [返回类型总览](RenderSceneExtractor.md) - [SceneRenderer::Render](../SceneRenderer/Render.md)