SpiecsEngine
 
Loading...
Searching...
No Matches

◆ Render()

void Spices::SceneComposeRenderer::Render ( TimeStep & ts,
FrameInfo & frameInfo )
overridevirtual

The interface is inherited from Renderer.

Parameters
[in]tsTimeStep.
[in]frameInfoThe current frame data.

Implements Spices::Renderer.

Definition at line 99 of file SceneComposeRenderer.cpp.

100 {
102
103 if(frameInfo.m_RendererType != RendererType::Rasterization) return;
104
105 RenderBehaveBuilder builder{ this, frameInfo.m_FrameIndex, frameInfo.m_ImageIndex };
106
107 builder.BeginRenderPass();
108
109 builder.BindDescriptorSet(DescriptorSetManager::GetByName("PreRenderer"));
110
111 builder.BindDescriptorSet(DescriptorSetManager::GetByName({ m_Pass->GetName(), "SceneCompose" }));
112
113 builder.UpdateStorageBuffer<RayTracingR::DirectionalLightBuffer>(3, 0, [&](auto& ssbo) {
114 GetDirectionalLight(frameInfo, ssbo.lights);
115 });
116
117 builder.UpdateStorageBuffer<RayTracingR::PointLightBuffer>(3, 1, [&](auto& ssbo) {
118 GetPointLight(frameInfo, ssbo.lights);
119 });
120
121 builder.UpdateAccelerationStructure(4, 0, RayTracingRenderer::GetAccelerationStructure());
122
123 builder.BindPipeline("SceneComposeRenderer.SceneCompose.Default");
124
125 builder.DrawFullScreenTriangle();
126
127 builder.EndRenderPass();
128 }
#define SPICES_PROFILE_ZONE
static DescriptorSetInfo & GetByName(const String2 &name)
Get a DescriptorSetInfo by owner's name.
static VkAccelerationStructureKHR GetAccelerationStructure()
Get RayTracing AccelerationStructure.
std::shared_ptr< RendererPass > m_Pass
RendererPass.
Definition Renderer.h:2012
void GetDirectionalLight(FrameInfo &frameInfo, std::array< SpicesShader::DirectionalLight, SpicesShader::DIRECTIONALLIGHT_BUFFER_MAXNUM > &dLightBuffer)
Get DirectionalLightComponent's render data in World.
Definition Renderer.cpp:371
void GetPointLight(FrameInfo &frameInfo, std::array< SpicesShader::PointLight, SpicesShader::POINTLIGHT_BUFFER_MAXNUM > &pLightBuffer)
Get PointLightComponent's render data in World.
Definition Renderer.cpp:445

References Spices::Renderer::RenderBehaveBuilder::BeginRenderPass(), Spices::Renderer::RenderBehaveBuilder::EndRenderPass(), Spices::Renderer::GetDirectionalLight(), Spices::Renderer::GetPointLight(), Spices::FrameInfo::m_FrameIndex, Spices::FrameInfo::m_ImageIndex, Spices::FrameInfo::m_RendererType, and Spices::Rasterization.