Toast Engine
Loading...
Searching...
No Matches
renderer::ReflectionProbePass Class Reference
Inheritance diagram for renderer::ReflectionProbePass:
Collaboration diagram for renderer::ReflectionProbePass:

Public Member Functions

 ReflectionProbePass (const VulkanCore &core, vk::Format color_format, vk::Format depth_format)
auto name () const -> std::string_view override
void record (vk::CommandBuffer cmd, uint32_t frame_index, uint32_t image_index) override
void recordPre (vk::CommandBuffer cmd, uint32_t frame_index, uint32_t image_index) override
 Records outside any rendering scope before the main scope opens.
void queueSave (uint32_t probe, std::string_view uri)
auto loadProbe (uint32_t probe, std::string_view uri) -> bool
auto stage () const -> RenderStage override
void captureFace (vk::CommandBuffer cmd, vk::Image scene_color, vk::Extent2D scene_extent, uint32_t probe, uint32_t face)
void captureIrradianceFace (vk::CommandBuffer cmd, vk::Image scene_color, vk::Extent2D scene_extent, uint32_t face)
void projectStagingToSh (vk::CommandBuffer cmd, uint32_t probe)
auto getShBuffer () const -> vk::Buffer
void queueShSave (uint32_t base, uint32_t count, std::string_view uri, const ShGridKey &key)
auto loadShRange (uint32_t base, uint32_t count, std::string_view uri, const ShGridKey &key) -> bool
void setProbeResolution (uint32_t probe, uint32_t face_size)
auto getProbeResolution (uint32_t probe) const -> uint32_t
auto getProbeView (uint32_t probe) const -> vk::ImageView
auto getProbeIrradianceView (uint32_t probe) const -> vk::ImageView
auto getSampler () const -> vk::Sampler
auto getMipCount () const noexcept -> uint32_t
auto isBaked (uint32_t probe) const -> bool
void setBakedTransform (uint32_t probe, const glm::vec3 &position, const glm::vec3 &extents)
auto isStale (uint32_t probe, const glm::vec3 &position, const glm::vec3 &extents) const -> bool
Public Member Functions inherited from IRenderPass
virtual void update (uint32_t frame_index, float dt)
void setEnabled (bool enabled) noexcept
auto isEnabled () const noexcept -> bool

Static Public Attributes

static constexpr uint32_t k_max_probes = 8
 Matches VulkanRenderer::k_max_reflection_probes.
static constexpr uint32_t k_default_face_size = 128
static constexpr uint32_t k_max_face_size = 512
static constexpr uint32_t k_irradiance_size = 32

Member Function Documentation

◆ captureFace()

void renderer::ReflectionProbePass::captureFace ( vk::CommandBuffer cmd,
vk::Image scene_color,
vk::Extent2D scene_extent,
uint32_t probe,
uint32_t face )
Parameters
scene_colorMust be eTransferSrcOptimal
Here is the caller graph for this function:

◆ name()

auto renderer::ReflectionProbePass::name ( ) const -> std::string_view
inlinenodiscardoverridevirtual

Reimplemented from IRenderPass.

◆ record()

void renderer::ReflectionProbePass::record ( vk::CommandBuffer cmd,
uint32_t frame_index,
uint32_t image_index )
overridevirtual

Implements IRenderPass.

◆ recordPre()

void renderer::ReflectionProbePass::recordPre ( vk::CommandBuffer cmd,
uint32_t frame_index,
uint32_t image_index )
overridevirtual

Records outside any rendering scope before the main scope opens.

Reimplemented from IRenderPass.

Here is the caller graph for this function:

◆ setProbeResolution()

void renderer::ReflectionProbePass::setProbeResolution ( uint32_t probe,
uint32_t face_size )
Warning
Blocks on device idle
Here is the caller graph for this function:

◆ stage()

auto renderer::ReflectionProbePass::stage ( ) const -> RenderStage
inlinenodiscardoverridevirtual

Reimplemented from IRenderPass.


The documentation for this class was generated from the following files: