Point light working

This commit is contained in:
Confideo-IOM
2026-08-16 13:47:11 +01:00
parent f9b696f9e8
commit 98ff54c106
50 changed files with 1187 additions and 357 deletions
@@ -14,7 +14,9 @@
#include "../ecs/systems/HydraDirectionalShadowSourceSystem.h"
#include "../ecs/components/HydraDirectionalShadowSourceComponent.h"
#include "../ecs/systems/HydraSpotShadowSourceSystem.h"
#include "../ecs/systems/HydraPointShadowSourceSystem.h"
#include "../ecs/components/HydraSpotShadowSourceComponent.h"
#include "../ecs/components/HydraPointShadowSourceComponent.h"
#include "../mesh/StandardVertex.h"
#include "../actor/HydraActorManager.h"
#include "../actor/HydraOutputActor.h"
@@ -237,6 +239,7 @@ void HydraDeferredPipeline::_CreateOutputRenderStage()
HydraID light_buffer_id = buffer_manager->FindBuffer("LightBuffer");
HydraID directional_shadow_buffer_id = buffer_manager->FindBuffer("DirectionalShadowBuffer");
HydraID spot_shadow_buffer_id = buffer_manager->FindBuffer("SpotShadowBuffer");
HydraID point_shadow_buffer_id = buffer_manager->FindBuffer("PointShadowBuffer");
HydraShaderBinding shader_binding = {};
shader_binding.block_name.push_back("position_buffer");
@@ -274,6 +277,11 @@ void HydraDeferredPipeline::_CreateOutputRenderStage()
shader_binding.buffer_id.push_back(spot_shadow_buffer_id);
shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER);
shader_binding.block_name.push_back("point_shadow_map_sets");
shader_binding.binding_point.push_back(7);
shader_binding.buffer_id.push_back(point_shadow_buffer_id);
shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER);
render_stage->Initialise(shader_path + "deferred_output_shader.vert",
shader_path + "deferred_output_shader.frag", "",
shader_binding,
@@ -288,7 +296,7 @@ void HydraDeferredPipeline::_CreateOutputRenderStage()
void HydraDeferredPipeline::_CreateTextureDebugOutputStage()
{
HydraRenderStage* render_stage = new HydraRenderStage();
HydraRenderStage* render_stage = new HydraRenderStage();
std::string shader_path = std::string(shader_base);
HydraBufferManager* buffer_manager = GetEngine()->BufferManager();