Orchestrates the full Illumine render pipeline for a single scene. More...
#include <SceneRenderer.h>
Public Member Functions | |
| FRAMEWORK_API void | Init () |
| Allocates all GPU resources and initialises every render pass. | |
| FRAMEWORK_API void | Shutdown () |
| Releases all GPU resources and saves renderer settings. | |
| FRAMEWORK_API void | BeginScene (Ref< Scene > scene) |
| Sets the scene to render and begins the Renderer2D frame. | |
| FRAMEWORK_API void | ResetFrameData () |
| Clears per-frame light SSBOs and resets the active cubemap to the default. | |
| FRAMEWORK_API void | EndScene (const Camera &camera) |
| Uploads per-frame GPU data and executes the full render pipeline. | |
| Ref< RenderPass > | GetFinalRenderPass () |
| Returns the render pass that produces the final HDR geometry output. | |
| Ref< Image2D > | GetFinalImage () |
| Returns the tone-mapped LDR output image ready for display or ImGui. | |
| Ref< Image2D > | GetShadowImage () |
| Returns the shadow depth map produced by ShadowPass. | |
| RendererFeatures & | GetFeatures () |
| Returns a mutable reference to the toggleable renderer feature flags. | |
| ShadowSettings & | GetShadowSettings () |
| Returns a mutable reference to the shadow pass configuration. | |
| ShaderSettingsData & | GetSettings () |
| Returns a mutable reference to the geometry pass shader settings. | |
| ToneMapData & | GetToneMapData () |
| Returns a mutable reference to the tone mapping parameters. | |
| HBAOSettings & | GetHBAOSettings () |
| Returns a mutable reference to the HBAO ambient occlusion settings. | |
| FRAMEWORK_API void | LoadRendererSettings () |
| Deserialises renderer settings from the project configuration file. | |
| FRAMEWORK_API void | SaveRendererSettings () |
| Serialises renderer settings to the project configuration file. | |
| FRAMEWORK_API void | RecreateShadowMap (u32 newSize) |
| Schedules a shadow map resolution change for the next frame boundary. | |
Orchestrates the full Illumine render pipeline for a single scene.
SceneRenderer owns all render and compute passes and the shared GPU resources (UBOs, SSBOs, cubemaps) consumed by those passes. Each frame the caller invokes BeginScene and EndScene.
Sets the scene to render and begins the Renderer2D frame.
| scene | The scene whose entities will be submitted this frame. |
| void Raven::SceneRenderer::EndScene | ( | const Camera & | camera | ) |
Uploads per-frame GPU data and executes the full render pipeline.
Uploads the camera matrices, light environment, and shader settings, then dispatches all passes in dependency order. The tone-mapped result is available via GetFinalImage after this call returns.
| camera | Camera whose view/projection matrices drive the frame. |
|
inline |
Returns a mutable reference to the toggleable renderer feature flags.
Returns the tone-mapped LDR output image ready for display or ImGui.
|
inline |
Returns the render pass that produces the final HDR geometry output.
RenderPass.
|
inline |
Returns a mutable reference to the HBAO ambient occlusion settings.
|
inline |
Returns a mutable reference to the geometry pass shader settings.
Returns the shadow depth map produced by ShadowPass.
|
inline |
Returns a mutable reference to the shadow pass configuration.
|
inline |
Returns a mutable reference to the tone mapping parameters.
| void Raven::SceneRenderer::Init | ( | ) |
Allocates all GPU resources and initialises every render pass.
Must be called once before any scene is rendered. Loads persisted renderer settings via LoadRendererSettings.
| void Raven::SceneRenderer::LoadRendererSettings | ( | ) |
Deserialises renderer settings from the project configuration file.
| void Raven::SceneRenderer::RecreateShadowMap | ( | u32 | newSize | ) |
Schedules a shadow map resolution change for the next frame boundary.
| newSize | New shadow map resolution in pixels (square). |
| void Raven::SceneRenderer::ResetFrameData | ( | ) |
Clears per-frame light SSBOs and resets the active cubemap to the default.
Call once when the scene is changed.
| void Raven::SceneRenderer::SaveRendererSettings | ( | ) |
Serialises renderer settings to the project configuration file.
| void Raven::SceneRenderer::Shutdown | ( | ) |
Releases all GPU resources and saves renderer settings.