VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
renderPassShadowLocalClustered.cpp
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 on 01.10.2025.
5//
7
8namespace visutwin::canvas
9{
10 void RenderPassShadowLocalClustered::update(const std::vector<Light*>& localLights) {
11 // prepare render targets / shadow cameras for rendering
12 auto& shadowLights = _shadowRendererLocal->shadowLights();
13 auto shadowCamera = _shadowRendererLocal->prepareLights(shadowLights, localLights);
14
15 // if any shadows need to be rendered
16 const int count = static_cast<int>(shadowLights.size());
17 setEnabled(count > 0);
18
19 if (count > 0) {
20 // setup render pass using any of the cameras, they all have the same pass-related properties
21 // Note that the render pass is set up to not clear the render target, as individual shadow maps clear it
22 _shadowRenderer->setupRenderPass(this, shadowCamera, false);
23 }
24 }
25}
void setEnabled(bool value)
void update(const std::vector< Light * > &localLights)