|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
Forward PBR renderer that builds a FrameGraph from the scene's layer composition. More...
#include <scene/renderer/forwardRenderer.h>
Public Member Functions | |
| void | addMainRenderPass (FrameGraph *frameGraph, LayerComposition *layerComposition, RenderTarget *renderTarget, int startIndex, int endIndex) |
| void | buildFrameGraph (FrameGraph *frameGraph, LayerComposition *layerComposition) |
| ForwardRenderer (const std::shared_ptr< GraphicsDevice > &device, const std::shared_ptr< Scene > &scene) | |
| Public Member Functions inherited from visutwin::canvas::Renderer | |
| void | cullShadowmaps (Camera *camera) |
| Renderer (const std::shared_ptr< GraphicsDevice > &device, const std::shared_ptr< Scene > &scene) | |
| void | renderForwardLayer (Camera *camera, RenderTarget *renderTarget, Layer *layer, bool transparent) |
Additional Inherited Members | |
| Protected Member Functions inherited from visutwin::canvas::Renderer | |
| ShadowRendererDirectional * | shadowRendererDirectional () const |
| Protected Attributes inherited from visutwin::canvas::Renderer | |
| std::unordered_map< Camera *, std::vector< Light * > > | _cameraDirShadowLights |
| std::shared_ptr< GraphicsDevice > | _device |
| std::vector< Light * > | _lights |
| std::vector< Light * > | _localLights |
| std::vector< std::unique_ptr< ShadowMap > > | _ownedShadowMaps |
| std::shared_ptr< RenderPassUpdateClustered > | _renderPassUpdateClustered |
| std::shared_ptr< Scene > | _scene |
| std::unique_ptr< ShadowRendererLocal > | _shadowRendererLocal |
Forward PBR renderer that builds a FrameGraph from the scene's layer composition.
ForwardRenderer is the main rendering path. It constructs a FrameGraph containing shadow passes, the main forward pass (multi-light PBR), clustered-lighting updates, and post-processing (SSAO, TAA, DOF, compose). The frame graph is rebuilt each frame via buildFrameGraph() and then compiled and executed.
Definition at line 23 of file forwardRenderer.h.
|
inline |
Definition at line 26 of file forwardRenderer.h.
References visutwin::canvas::Renderer::Renderer().
| void visutwin::canvas::ForwardRenderer::addMainRenderPass | ( | FrameGraph * | frameGraph, |
| LayerComposition * | layerComposition, | ||
| RenderTarget * | renderTarget, | ||
| int | startIndex, | ||
| int | endIndex ) |
Definition at line 195 of file forwardRenderer.cpp.
References visutwin::canvas::Renderer::_device, visutwin::canvas::Renderer::_scene, visutwin::canvas::FrameGraph::addRenderPass(), and visutwin::canvas::LayerComposition::renderActions().
Referenced by buildFrameGraph().
| void visutwin::canvas::ForwardRenderer::buildFrameGraph | ( | FrameGraph * | frameGraph, |
| LayerComposition * | layerComposition ) |
Definition at line 19 of file forwardRenderer.cpp.
References visutwin::canvas::Renderer::_cameraDirShadowLights, visutwin::canvas::Renderer::_device, visutwin::canvas::Renderer::_lights, visutwin::canvas::Renderer::_localLights, visutwin::canvas::Renderer::_ownedShadowMaps, visutwin::canvas::Renderer::_renderPassUpdateClustered, visutwin::canvas::Renderer::_scene, visutwin::canvas::Renderer::_shadowRendererLocal, addMainRenderPass(), visutwin::canvas::FrameGraph::addRenderPass(), visutwin::canvas::Renderer::cullShadowmaps(), visutwin::canvas::LightComponent::instances(), visutwin::canvas::LAYERID_DEPTH, visutwin::canvas::LIGHTTYPE_DIRECTIONAL, visutwin::canvas::LayerComposition::renderActions(), visutwin::canvas::FrameGraph::reset(), and visutwin::canvas::Renderer::shadowRendererDirectional().