Files
XCEngine/docs/api/XCEngine/Rendering/FrameData/RenderSceneData/RenderSceneData.md

64 lines
1.7 KiB
Markdown
Raw Normal View History

# RenderSceneData
**命名空间**: `XCEngine::Rendering`
**类型**: `struct + related structs + enum`
**头文件**: `XCEngine/Rendering/FrameData/RenderSceneData.h`
**描述**: scene extraction 之后的核心帧数据块,汇总相机、环境、光照、全局 shader keywords、网格 `visibleItems` 与体对象 `visibleVolumes`
## 头文件中的主要类型
- `RenderDirectionalLightData`
- `RenderLightType`
- `RenderAdditionalLightData`
- `RenderDirectionalShadowData`
- `RenderLightingData`
- `RenderSceneData`
## `RenderLightingData`
当前光照快照包含:
- 一盏 `mainDirectionalLight`
- 一份 `mainDirectionalShadow`
- 最多 `8``additionalLights`
并通过:
- `HasMainDirectionalLight()`
- `HasMainDirectionalShadow()`
- `HasAdditionalLights()`
暴露快速判断。
## `RenderSceneData`
核心字段包括:
- `camera`
- `cameraData`
- `environment`
- `lighting`
- `globalShaderKeywords`
- `visibleItems`
- `visibleVolumes`
`HasCamera()` 当前只检查 `camera != nullptr`
## 当前调用链
- [RenderSceneExtractor](../../Extraction/RenderSceneExtractor/RenderSceneExtractor.md) 生成 `RenderSceneData`
- [CameraRenderer](../../Execution/CameraRenderer/CameraRenderer.md) 消费它
- builtin pipeline 和各类 pass 从它的 `visibleItems``visibleVolumes`、lighting 与 cameraData 继续取数
## 相关文档
- [FrameData](../FrameData.md)
- [RenderCameraData](../RenderCameraData/RenderCameraData.md)
- [RenderEnvironmentData](../RenderEnvironmentData/RenderEnvironmentData.md)
- [VisibleRenderItem](../VisibleRenderItem/VisibleRenderItem.md)
- [VisibleVolumeItem](../VisibleVolumeItem/VisibleVolumeItem.md)
- [RenderSceneExtractor](../../Extraction/RenderSceneExtractor/RenderSceneExtractor.md)