Toast Engine
Toggle main menu visibility
Loading...
Searching...
No Matches
traced_shadow_pass.hpp
Go to the documentation of this file.
1
6
7
#pragma once
8
9
#include "
../post_process_pass_base.hpp
"
10
#include "
../post_process_target.hpp
"
11
#include "../shader_layout.hpp"
12
#include "../vulkan_common.hpp"
13
#include "../vulkan_pipeline.hpp"
14
15
#include <glm/glm.hpp>
16
#include <optional>
17
#include <utility>
18
#include <vector>
19
20
namespace
renderer {
21
class
VulkanCore
;
22
23
class
TracedShadowPass :
public
IPostProcessPass
{
24
public
:
25
TracedShadowPass(
const
VulkanCore
& core, vk::Format scene_format, vk::Extent2D extent);
26
27
[[nodiscard]]
28
auto
name()
const
-> std::string_view
override
{
29
return
"Traced Shadows"
;
30
}
31
32
auto
record
(vk::CommandBuffer cmd, uint32_t frame_index, vk::ImageView source_view) -> vk::ImageView
override
;
33
34
void
onResize(vk::Extent2D extent)
override
;
35
36
private
:
38
struct
Params {
39
glm::mat4 inverse_view_projection {1.0f};
40
glm::vec4 light_direction {0.0f};
42
glm::vec4 tuning {0.0f};
43
};
44
45
void
createResources(
const
VulkanCore
& core);
46
void
createTarget(
const
VulkanCore
& core, vk::Extent2D extent);
47
48
const
VulkanCore
* m_core =
nullptr
;
49
vk::Format m_scene_format = vk::Format::eUndefined;
50
51
ShaderLayout
m_shader_layout;
52
VulkanPipeline
m_pipeline;
53
54
vk::raii::Sampler m_sampler =
nullptr
;
55
vk::raii::Sampler m_point_sampler =
nullptr
;
56
57
std::vector<vk::raii::DescriptorSet> m_descriptor_sets;
58
std::vector<vk::ImageView> m_bound_views;
60
std::vector<std::pair<vk::AccelerationStructureKHR, uint64_t>> m_bound_acceleration_structures;
61
62
PostProcessTarget
m_target;
63
};
64
65
}
renderer::IPostProcessPass
Definition
post_process_pass_base.hpp:14
renderer::PostProcessTarget
Definition
post_process_target.hpp:19
renderer::ShaderLayout
Definition
shader_layout.hpp:12
renderer::TracedShadowPass::record
auto record(vk::CommandBuffer cmd, uint32_t frame_index, vk::ImageView source_view) -> vk::ImageView override
Definition
traced_shadow_pass.cpp:109
renderer::VulkanCore
Definition
vulkan_core.hpp:48
renderer::VulkanPipeline
Definition
vulkan_pipeline.hpp:19
post_process_pass_base.hpp
post_process_target.hpp
engine
src
toast
renderer
passes
traced_shadow_pass.hpp
Generated by
1.17.0