VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
renderPassShadowDirectional.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 13.02.2026.
5//
6#pragma once
7
9#include "scene/camera.h"
10#include "scene/light.h"
11
12namespace visutwin::canvas
13{
14 class ShadowRenderer;
15
21 {
22 public:
23 RenderPassShadowDirectional(const std::shared_ptr<GraphicsDevice>& device,
24 ShadowRenderer* shadowRenderer, Light* light, Camera* camera, Camera* shadowCamera, int face, bool allCascadesRendering);
25
26 void execute() override;
27 void after() override;
28
29 private:
30 ShadowRenderer* _shadowRenderer = nullptr;
31 Light* _light = nullptr;
32 Camera* _camera = nullptr;
33 Camera* _shadowCamera = nullptr;
34 std::shared_ptr<GraphicsDevice> _graphicsDevice;
35 int _face = 0;
36 bool _allCascadesRendering = true;
37 };
38}
Perspective or orthographic camera with projection matrix, jitter (TAA), and render target binding.
Definition camera.h:40
Directional, point, spot, or area light with shadow mapping and cookie projection.
Definition light.h:54
std::shared_ptr< GraphicsDevice > device() const
Definition renderPass.h:124
RenderPass(const std::shared_ptr< GraphicsDevice > &device)
Definition renderPass.h:66
RenderPassShadowDirectional(const std::shared_ptr< GraphicsDevice > &device, ShadowRenderer *shadowRenderer, Light *light, Camera *camera, Camera *shadowCamera, int face, bool allCascadesRendering)