VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
renderPassUpdateClustered.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright 2025-2026 Arnis Lektauers
3
//
4
// Created by Arnis Lektauers on 11.09.2025.
5
//
6
#pragma once
7
8
#include "
renderPassCookieRenderer.h
"
9
#include "
renderPassShadowLocalClustered.h
"
10
#include "
shadowRenderer.h
"
11
#include "
shadowRendererLocal.h
"
12
#include "
platform/graphics/graphicsDevice.h
"
13
#include "
platform/graphics/renderPass.h
"
14
#include "
scene/frameGraph.h
"
15
#include "
scene/light.h
"
16
17
namespace
visutwin::canvas
{
18
/*
19
* A render pass used to update clustered lighting data - shadows, cookies, world clusters
20
*/
21
class
RenderPassUpdateClustered
:
public
RenderPass
22
{
23
public
:
24
RenderPassUpdateClustered
(
const
std::shared_ptr<GraphicsDevice>&
device
,
Renderer
* renderer,
ShadowRenderer
* shadowRenderer,
25
ShadowRendererLocal
* shadowRendererLocal,
LightTextureAtlas
* lightTextureAtlas);
26
27
// Updates the render pass with current lighting data
28
void
update
(
FrameGraph
* frameGraph,
bool
shadowsEnabled,
bool
cookiesEnabled,
29
const
std::vector<Light*>& lights,
const
std::vector<Light*>& localLights);
30
31
private
:
32
FrameGraph
* _frameGraph;
33
34
// Render cookies for all local visible lights
35
std::shared_ptr<RenderPassCookieRenderer> _cookiesRenderPass;
36
37
// Local shadows - these are shared by all cameras
38
std::shared_ptr<RenderPassShadowLocalClustered> _shadowRenderPass;
39
};
40
}
visutwin::canvas::FrameGraph
Definition
frameGraph.h:19
visutwin::canvas::LightTextureAtlas
Definition
lightTextureAtlas.h:16
visutwin::canvas::RenderPass::device
std::shared_ptr< GraphicsDevice > device() const
Definition
renderPass.h:124
visutwin::canvas::RenderPass::RenderPass
RenderPass(const std::shared_ptr< GraphicsDevice > &device)
Definition
renderPass.h:66
visutwin::canvas::RenderPassUpdateClustered::RenderPassUpdateClustered
RenderPassUpdateClustered(const std::shared_ptr< GraphicsDevice > &device, Renderer *renderer, ShadowRenderer *shadowRenderer, ShadowRendererLocal *shadowRendererLocal, LightTextureAtlas *lightTextureAtlas)
Definition
renderPassUpdateClustered.cpp:11
visutwin::canvas::RenderPassUpdateClustered::update
void update(FrameGraph *frameGraph, bool shadowsEnabled, bool cookiesEnabled, const std::vector< Light * > &lights, const std::vector< Light * > &localLights)
Definition
renderPassUpdateClustered.cpp:21
visutwin::canvas::Renderer
Definition
renderer.h:29
visutwin::canvas::ShadowRenderer
Definition
shadowRenderer.h:17
visutwin::canvas::ShadowRendererLocal
Definition
shadowRendererLocal.h:18
frameGraph.h
graphicsDevice.h
light.h
visutwin::canvas
Definition
eventHandler.cpp:9
renderPass.h
renderPassCookieRenderer.h
renderPassShadowLocalClustered.h
shadowRenderer.h
shadowRendererLocal.h
scene
renderer
renderPassUpdateClustered.h
Generated by
1.16.1