1.2 KiB
1.2 KiB
RenderSceneExtractor::Extract
从场景中提取当前帧要渲染的数据。
RenderSceneData Extract(
const Components::Scene& scene,
Components::CameraComponent* overrideCamera,
uint32_t viewportWidth,
uint32_t viewportHeight) const;
行为说明
当前实现会:
- 选择一台可用相机。
- 根据相机和视口尺寸构造
RenderCameraData。 - 从场景根对象开始递归遍历层级。
- 收集符合条件的 mesh 对象,输出
VisibleRenderObject数组。
参数
scene- 要提取的场景。overrideCamera- 显式指定的相机;若可用则优先级最高。viewportWidth- 当前视口宽度。viewportHeight- 当前视口高度。
返回值
- 一份
RenderSceneData。
当前实现说明
- 当没有可用相机时,返回的
RenderSceneData里camera == nullptr。 - 透视相机使用
Matrix4x4::Perspective,正交相机使用Matrix4x4::Orthographic。 - 当前把
view、projection和viewProjection都以转置形式写入结果。