Light tweeks

This commit is contained in:
Confideo-IOM
2026-08-17 14:12:11 +01:00
parent 98ff54c106
commit 139fb149b2
55 changed files with 593 additions and 265 deletions
+7 -7
View File
@@ -14,14 +14,14 @@ bool HydraGame::Initialise()
GetEngine()->ActorManager()->SetOrientation(m_sun_light_id, -0.5f, -0.2f, 0.0f);
m_other_light_id = GetEngine()->ActorManager()->CreateActor<HydraPointLightActor>();
GetEngine()->ActorManager()->InitialiseActor(m_other_light_id);
GetEngine()->ActorManager()->SetPosition(m_other_light_id, glm::dvec3(0.0f, 1.0f, 5.0f));
// m_other_light_id = GetEngine()->ActorManager()->CreateActor<HydraPointLightActor>();
// GetEngine()->ActorManager()->InitialiseActor(m_other_light_id);
// GetEngine()->ActorManager()->SetPosition(m_other_light_id, glm::dvec3(0.0f, 2.0f, 0.0f));
m_spot_light_id = GetEngine()->ActorManager()->CreateActor<HydraSpotLightActor>();
GetEngine()->ActorManager()->InitialiseActor(m_spot_light_id);
GetEngine()->ActorManager()->SetOrientation(m_spot_light_id, -0.5f, -0.2f, 0.0f);
GetEngine()->ActorManager()->SetPosition(m_spot_light_id, glm::dvec3(0.0f, 4.0f, 5.0f));
// m_spot_light_id = GetEngine()->ActorManager()->CreateActor<HydraSpotLightActor>();
// GetEngine()->ActorManager()->InitialiseActor(m_spot_light_id);
// GetEngine()->ActorManager()->SetOrientation(m_spot_light_id, -0.5f, -0.2f, 0.0f);
// GetEngine()->ActorManager()->SetPosition(m_spot_light_id, glm::dvec3(0.0f, 4.0f, 5.0f));
// //1.570796327f
+4 -2
View File
@@ -44,8 +44,10 @@ const uint32_t MAX_LIGHTS = 500;
const uint32_t MAX_DIRECTIONAL_SHADOWS = 10;
const uint32_t MAX_SPOT_SHADOWS = 10;
const uint32_t MAX_POINT_SHADOWS = 10;
const uint32_t SHADOW_MAP_SIZE = 1024;
//const uint32_t SHADOW_MAP_SIZE = 1024;
const uint32_t DIRECTIONAL_SHADOW_MAP_SIZE = 4096;
const uint32_t SPOT_SHADOW_MAP_SIZE = 1024;
const uint32_t POINT_SHADOW_MAP_SIZE = 1024;
enum class HYDRA_RENDERABLE_TYPE
{
@@ -327,12 +327,26 @@ float SampleCascadeShadow(vec4 frag_clip_space, sampler2DArray sampler_shadow_ma
float shadow_map_depth = texture(sampler_shadow_map, vec3(frag_light_space.xy, shadow_trans_idx)).r;
// calculate bias (based on depth map resolution and slope)
float bias = max(0.0005 * (1.0 - dot(normal, light_dir)), 0.00005);
float mapped_distance = (shadow_trans_idx*2);
float bias = 0.0f;//max(0.0001 * (1.0 - dot(normal, light_dir)), 0.00001);
// check whether current frag pos is in shadow
// float shadow = currentDepth - bias > closestDepth ? 1.0 : 0.0;
// PCF
//bias = 0;
if(shadow_trans_idx < 3)
{
bias = 0.00001;
}
else if(shadow_trans_idx == 3)
{
bias = 0.0001;// + (0.000001 * mapped_distance);
}
else
{
bias = 0.0005;
}
float shadow = 0.0;
vec2 texel_size = 1.0 / textureSize(sampler_shadow_map, 0).xy;
if((frag_light_space.x >= 0.0)&&(frag_light_space.y >= 0.0)
@@ -343,7 +357,7 @@ float SampleCascadeShadow(vec4 frag_clip_space, sampler2DArray sampler_shadow_ma
for(int y = -1; y <= 1; ++y)
{
shadow_map_depth = texture(sampler_shadow_map, vec3(frag_light_space.xy + vec2(x, y) * texel_size, shadow_trans_idx)).r;
shadow += frag_light_space.z - bias > shadow_map_depth ? 1.0 : 0.0;
shadow += (frag_light_space.z - bias) > shadow_map_depth ? 1.0 : 0.0;
}
}
shadow /= 9.0;
@@ -414,14 +428,39 @@ vec3 CalculateDirectionalShadow(vec4 world_pos, uint shadow_idx, vec3 normal, ve
if(ignore_shadow == 1)
{
vec4 translated_pixel = directional_shadows[shadow_idx].light_space_proj[shadow_trans_idx] *
directional_shadows[shadow_idx].light_space_view[shadow_trans_idx] *
world_pos;
uvec2 shadow_handle = textures[directional_shadows[shadow_idx].shadow_texture_id];
shadow = 1.0 - SampleCascadeShadow(translated_pixel, sampler2DArray(shadow_handle), shadow_trans_idx, normal, light_dir);
}
return vec3(shadow);
if(shadow_trans_idx == 0)
{
return vec3(1,0,0);
}
if(shadow_trans_idx == 1)
{
return vec3(0,1,0);
}
if(shadow_trans_idx == 2)
{
return vec3(0,0,1);
}
if(shadow_trans_idx == 3)
{
return vec3(1,1,0);
}
if(shadow_trans_idx == 4)
{
return vec3(1,0,1);
}
if(shadow_trans_idx == 5)
{
return vec3(0,1,1);
}
}
float CalculateSpotShadow(vec4 world_pos, uint shadow_idx, vec3 normal, vec3 light_dir, vec3 viewer_pos)
{
@@ -460,7 +499,7 @@ float SampleCubemapShadow(vec3 frag_to_light, float far_plane, float view_distan
for(int i = 0; i < samples; ++i)
{
//float closest_depth = texture(sampler_shadow_map, frag_to_light).r;
float closest_depth = texture(sampler_shadow_map, frag_to_light + sample_offset_directions[i] * disk_radius).r;
closest_depth *= far_plane; // undo mapping [0;1]
if(frag_depth - bias > closest_depth)
@@ -468,15 +507,7 @@ float SampleCubemapShadow(vec3 frag_to_light, float far_plane, float view_distan
}
shadow /= float(samples);
return shadow;
// float frag_depth = length(frag_to_light);
// closest_depth = closest_depth * far_plane;
// float bias = 0.05f;
// float shadow = (frag_depth - bias) > closest_depth ? 1.0 : 0.0;
// return shadow;
}
float CalculatePointShadow(vec3 world_pos, uint shadow_idx, float view_distance, vec3 light_position)
@@ -515,15 +546,17 @@ void main()
mat4 model = model_matrix[lights[i].entity_id];
mat3 rot_mat = GetRotationOnlyMatrix(model);
vec3 light_direction = normalize(rot_mat * vec3(0,0,1));
vec3 light_pos = model[3].xyz;
if(lights[i].light_type == HYDRA_LIGHT_DIRECTIONAL)
{
Lo += DirectionalShading(normal, diffuse.xyz, rough, metal, lights[i].intensity, light_direction, light_pos, world_pos, ubo_per_frame.viewer_pos);
Lo *= lights[i].diffuse.xyz;
if(lights[i].shadow_caster == 1)
{
vec3 shadow = CalculateDirectionalShadow(vec4(world_pos, 1.0), lights[i].shadow_map_id, normal, light_direction, ubo_per_frame.viewer_pos);
Lo = Lo * shadow;
}
}
else if(lights[i].light_type == HYDRA_LIGHT_POINT)
@@ -575,7 +608,7 @@ void main()
lights[i].quadratic,
world_pos,
ubo_per_frame.viewer_pos,
shadow);
shadow) * lights[i].diffuse.xyz;
}
@@ -21,8 +21,8 @@ void HydraDirectionalLightActor::InitialiseComponents()
HydraLightComponent light_comp = {};
HydraECS *ecs = GetEngine()->ECS();
light_comp.diffuse = glm::vec4(1,1,1,1);
light_comp.intensity = 10000.0f;
light_comp.diffuse = glm::vec4(1.0,0.8,0.6,1);
light_comp.intensity = 100000.0f;
light_comp.light_type = static_cast<uint32_t>(HYDRA_LIGHT_TYPE::HYDRA_LIGHT_DIRECTIONAL);
light_comp.entity_id = GetID();
light_comp.shadow_caster =1;
+1 -1
View File
@@ -165,7 +165,7 @@ void HydraPlaneActor::_CreateMaterial()
{
HydraEngine *engine = GetEngine();
std::string filename = std::string(texture_base) + std::string("/DesignArea/DesignArea_Albedo.png");
std::string filename = std::string(texture_base) + std::string("/DesignArea/DesignArea_Albedo_white.png");
HydraID tex_id = engine->TextureBufferManager()->LoadTexture(filename);
@@ -21,7 +21,7 @@ void HydraSpotLightActor::InitialiseComponents()
HydraLightComponent light_comp = {};
HydraECS *ecs = GetEngine()->ECS();
light_comp.diffuse = glm::vec4(1,1,1,1);
light_comp.diffuse = glm::vec4(1.0f,1.0f,1.0f,1);
light_comp.intensity = 10000.0f;
light_comp.light_type = static_cast<uint32_t>(HYDRA_LIGHT_TYPE::HYDRA_LIGHT_SPOT);
light_comp.cutoff = glm::cos(glm::radians(10.0f));
@@ -0,0 +1,191 @@
#include "HydraTestLightActor.h"
#include "../engine/HydraEngine.h"
#include "../actor/HydraActorManager.h"
#include "../task/HydraTask.h"
#include "../ecs/HydraECS.h"
#include "../ecs/components/HydraPositionComponent.h"
#include "../ecs/components/HydraMeshComponent.h"
#include "../ecs/components/HydraRenderableComponent.h"
#include "../ecs/components/HydraMaterialComponent.h"
#include "../buffer/HydraMaterialBufferManager.h"
#include "../buffer/HydraTextureBufferManager.h"
#include "../buffer/HydraMaterialBuffer.h"
#include "../mesh/HydraMeshManager.h"
#include "../mesh/HydraMesh.h"
void HydraTestLightActor::InitialiseComponents()
{
// HydraECS* ecs = GetEngine()->ECS();
// HydraID entity_id = ecs->CreateEntity();
_CreatePosition();
// _CreatePhysics();
_CreateMaterial();
_CreateMesh();
_CreateRenderableComponent();
}
void HydraTestLightActor::DeferredInitialiseComponents()
{
}
void HydraTestLightActor::_CreatePosition()
{
HydraECS *ecs = GetEngine()->ECS();
HydraPositionComponent position_component;
ecs->AddComponent<HydraPositionComponent>(GetID(), position_component);
}
void HydraTestLightActor::_CreateMesh()
{
HydraMeshManager *mesh_manager = GetEngine()->MeshManager();
HydraID mesh_id = mesh_manager->CreateMesh();
HydraMesh *mesh = mesh_manager->GetMesh(mesh_id);
HydraMaterialComponent mat_comp = GetEngine()->ECS()->GetComponent<HydraMaterialComponent>(GetID());
mesh->vertexes.resize(24);
mesh->indexes.resize(36);
float scale_x = 1.0f;
float scale_y = 1.0f;
float scale_z = 1.0f;
float min_x = -0.5f * scale_x;
float min_y = -0.5f * scale_y;
float min_z = -0.5f * scale_z;
float max_x = 0.5f * scale_x;
float max_y = 0.5f * scale_y;
float max_z = 0.5f * scale_z;
float min_u = 1;
float min_v = 1;
float max_u = 0;
float max_v = 0;
// 1---2 5---6
//| / | | / |
// 0---3 4---7
HydraID actor_id = GetID();
mesh->vertexes[0] = {min_x, min_y, min_z, min_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[1] = {min_x, max_y, min_z, min_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[2] = {max_x, max_y, min_z, max_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[3] = {max_x, min_y, min_z, max_u, min_v, actor_id, mat_comp.material_id, 0};
// Face 0
mesh->indexes[0] = 0;
mesh->indexes[1] = 1;
mesh->indexes[2] = 2;
mesh->indexes[3] = 0;
mesh->indexes[4] = 2;
mesh->indexes[5] = 3;
mesh->vertexes[4] = {max_x, min_y, min_z, min_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[5] = {max_x, max_y, min_z, min_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[6] = {max_x, max_y, max_z, max_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[7] = {max_x, min_y, max_z, max_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->indexes[6] = 4;
mesh->indexes[7] = 5;
mesh->indexes[8] = 6;
mesh->indexes[9] = 4;
mesh->indexes[10] = 6;
mesh->indexes[11] = 7;
// Back Face
mesh->vertexes[8] = {max_x, min_y, max_z, min_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[9] = {max_x, max_y, max_z, min_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[10] = {min_x, max_y, max_z, max_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[11] = {min_x, min_y, max_z, max_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->indexes[12] = 8;
mesh->indexes[13] = 9;
mesh->indexes[14] = 10;
mesh->indexes[15] = 8;
mesh->indexes[16] = 10;
mesh->indexes[17] = 11;
mesh->vertexes[12] = {min_x, min_y, max_z, min_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[13] = {min_x, max_y, max_z, min_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[14] = {min_x, max_y, min_z, max_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[15] = {min_x, min_y, min_z, max_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->indexes[18] = 12;
mesh->indexes[19] = 13;
mesh->indexes[20] = 14;
mesh->indexes[21] = 12;
mesh->indexes[22] = 14;
mesh->indexes[23] = 15;
mesh->vertexes[16] = {min_x, max_y, min_z, min_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[17] = {min_x, max_y, max_z, min_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[18] = {max_x, max_y, max_z, max_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[19] = {max_x, max_y, min_z, max_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->indexes[24] = 16;
mesh->indexes[25] = 17;
mesh->indexes[26] = 18;
mesh->indexes[27] = 16;
mesh->indexes[28] = 18;
mesh->indexes[29] = 19;
mesh->vertexes[20] = {min_x, min_y, min_z, min_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[21] = {max_x, min_y, min_z, min_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[22] = {max_x, min_y, max_z, max_u, max_v, actor_id, mat_comp.material_id, 0};
mesh->vertexes[23] = {min_x, min_y, max_z, max_u, min_v, actor_id, mat_comp.material_id, 0};
mesh->indexes[30] = 20;
mesh->indexes[31] = 21;
mesh->indexes[32] = 22;
mesh->indexes[33] = 20;
mesh->indexes[34] = 22;
mesh->indexes[35] = 23;
mesh_manager->CalculateNormals(mesh->mesh_id);
HydraECS *ecs = GetEngine()->ECS();
HydraMeshComponent mesh_comp;
mesh_comp.mesh_id = mesh_id;
mesh_comp.mesh_state = HYDRA_STATE::Waiting;
ecs->AddComponent<HydraMeshComponent>(GetID(), mesh_comp);
}
void HydraTestLightActor::_CreateMaterial()
{
HydraEngine *engine = GetEngine();
std::string filename = std::string(texture_base) + std::string("/DesignArea/DesignArea_Albedo.png");
HydraID tex_id = engine->TextureBufferManager()->LoadTexture(filename);
HydraMaterialBuffer material = {};
material.diffuse_texture_id = tex_id;
material.diffuse_colour = glm::vec4(1, 1, 1, 1);
material.metalic_rough = glm::vec4(0, 0.5, 0.3, 1);
HydraID mat_id = engine->MaterialBufferManager()->CreateMaterial(material);
HydraMaterialComponent mat_comp = {};
mat_comp.material_id = mat_id;
engine->ECS()->AddComponent<HydraMaterialComponent>(GetID(), mat_comp);
}
void HydraTestLightActor::_CreateRenderableComponent()
{
HydraRenderableComponent render_comp;
HydraECS *ecs = GetEngine()->ECS();
render_comp.renderable_types.set((uint32_t)HYDRA_RENDERABLE_TYPE::HYDRA_COLOUR, true);
ecs->AddComponent<HydraRenderableComponent>(GetID(), render_comp);
}
@@ -0,0 +1,28 @@
#ifndef HYDRALIGHTTESTACTOR
#define HYDRALIGHTTESTACTOR
#include "HydraActor.h"
class CLASS_DEFINE HydraTestLightActor : public HydraActor
{
private:
double m_scale = 1.0;
double m_widthscale = 1.0f;
HydraID m_material_component = INVALID_HYDRA_ID;
HydraID m_position_component = INVALID_HYDRA_ID;
HydraID m_mesh_component = INVALID_HYDRA_ID;
protected:
void _CreatePosition();
void _CreateMesh();
void _CreateMaterial();
void _CreateRenderableComponent();
public:
virtual void InitialiseComponents();
virtual void DeferredInitialiseComponents();
virtual void Destroy(){}
};
#endif /* HYDRALIGHTTESTACTOR */
@@ -150,7 +150,7 @@ HydraID HydraTextureBufferManager::CreateCubemapTexture(std::string texture_name
for(uint32_t i = 0; i < 6; i++)
{
glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, internal_format, SHADOW_MAP_SIZE, SHADOW_MAP_SIZE, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, internal_format, POINT_SHADOW_MAP_SIZE, POINT_SHADOW_MAP_SIZE, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
}
@@ -18,6 +18,8 @@
#include "../../task/renderer/HydraCreateCascadeShadowFrameBuffer.hpp"
#include "../../task/renderer/HydraCreateShadowFrameBuffer.hpp"
#include "../../actor/HydraActorManager.h"
#include "../../actor/HydraTestCubeActor.h"
void HydraDirectionalShadowSourceSystem::Initialise()
{
@@ -41,6 +43,9 @@ void HydraDirectionalShadowSourceSystem::InitialiseComponent(HydraID entity_id)
shadow_comp.shadow_id = shadow_id;
_InitialiseShadowMap(entity_id);
// m_shadow_actor_id = GetEngine()->ActorManager()->CreateActor<HydraTestCubeActor>();
// GetEngine()->ActorManager()->InitialiseActor(m_shadow_actor_id);
// GetEngine()->ActorManager()->SetPosition(m_shadow_actor_id, glm::dvec3(0, 0, 0));
}
void HydraDirectionalShadowSourceSystem::UpdateSystem(float delta_t_seconds)
@@ -58,39 +63,43 @@ void HydraDirectionalShadowSourceSystem::_UpdateShadowMap(HydraID entity_id)
HydraPositionComponent pos_comp = ecs->GetComponent<HydraPositionComponent>(entity_id);
HydraDirectionalShadowSourceComponent &shad_comp = ecs->GetComponent<HydraDirectionalShadowSourceComponent>(entity_id);
float view_size = 4.0f;
float view_near = 0.1f;
float view_far = 4.0f;
float view_size = 4.0f;
float shadow_distance = 4.0f;
float max_shadow_range = 100000.0f;
glm::mat4 light_rot = glm::eulerAngleXYZ(pos_comp.orientation.x, pos_comp.orientation.y, pos_comp.orientation.z);
glm::vec3 light_dir = glm::normalize(glm::vec3(light_rot * glm::vec4(0.0f, 0.0f, -1.0f, 0.0f)));
glm::vec3 camera_pos = GetEngine()->Camera()->GetPosition();
glm::vec3 light_pos = (camera_pos - (light_dir * 1000.0f));
glm::vec3 target_pos = light_pos + light_dir;
glm::vec3 up_vector = glm::vec3(0.0f, 1.0f, 0.0f);
if (glm::abs(glm::dot(light_dir, up_vector)) > 0.99f)
{
up_vector = glm::vec3(1.0f, 0.0f, 0.0f); // Prevent gimbal lock
}
glm::mat4 view = glm::lookAt(light_pos, target_pos, up_vector);
for (uint32_t i = 0; i < 6; i++)
{
glm::vec3 light_pos = camera_pos;//- (light_dir * 2.0f);
glm::vec3 target_pos = light_pos + light_dir;
glm::vec3 up_vector = glm::vec3(0.0f, 1.0f, 0.0f);
float view_near = 0.1f;//max_shadow_range - shadow_distance;
float view_far = 2000.0f;// max_shadow_range + shadow_distance;
if (glm::abs(glm::dot(light_dir, up_vector)) > 0.99f)
{
up_vector = glm::vec3(1.0f, 0.0f, 0.0f); // Prevent gimbal lock
}
glm::mat4 view = glm::lookAt(light_pos, target_pos, up_vector);
glm::mat4 proj = glm::ortho(-view_size, view_size, -view_size, view_size, view_near, view_far);
// Save data to component
shad_comp.far_plane[i] = view_far;
shad_comp.near_plane[i] = view_near;
shad_comp.far_plane[i] = shadow_distance;
shad_comp.near_plane[i] = 0;
shad_comp.light_space_proj[i] = proj;
shad_comp.light_space_view[i] = view;
// Scale bounds exponentially for the next cascade tier
view_size *= 3.0f;
view_far *= 3.0f;
shadow_distance *= 3.0f;
}
// GetEngine()->ActorManager()->SetPosition(m_shadow_actor_id, light_pos);
// GetEngine()->ActorManager()->SetOrientation(m_shadow_actor_id, pos_comp.orientation.x, pos_comp.orientation.y, pos_comp.orientation.z);
GetEngine()->ShadowBufferManager()->UpdateDirectionalShadow(shad_comp.shadow_id, shad_comp);
}
@@ -18,6 +18,7 @@ class HydraDirectionalShadowSourceSystem : public HydraSystem
private:
void _UpdateShadowMap(HydraID entity_id);
void _InitialiseShadowMap(HydraID entity_id);
HydraID m_shadow_actor_id = INVALID_HYDRA_ID;
std::mutex m_mutex;
};
@@ -40,5 +40,5 @@ void HydraMeshSystem::InitialiseComponent(HydraID entity_id)
HydraUpdateVertexBufferTask *vertex_update_task = static_cast<HydraUpdateVertexBufferTask *>(task_scheduler->GetTask(update_buffer_task_id));
vertex_update_task->Intialise(mesh_comp.vertex_buffer_id, &mesh->vertexes[0], &mesh->indexes[0]);
task_scheduler->WaitForTask(update_buffer_task_id);
mesh_comp.mesh_state = HYDRA_STATE::Ready;
}
@@ -63,8 +63,8 @@ void HydraPointShadowSourceSystem::_UpdateShadowMap(HydraID entity_id)
glm::vec3 camera_pos = GetEngine()->Camera()->GetPosition();
float aspect = (float)SHADOW_MAP_SIZE/(float)SHADOW_MAP_SIZE;
float width = SHADOW_MAP_SIZE;
float aspect = (float)POINT_SHADOW_MAP_SIZE/(float)POINT_SHADOW_MAP_SIZE;
float width = POINT_SHADOW_MAP_SIZE;
float fov = glm::radians(90.0f);
glm::mat4 shadow_proj = glm::perspectiveFovLH<float>(fov, width, width, view_near, view_far);
@@ -115,12 +115,14 @@ void HydraRenderStage::Render(std::set<HydraID>& entities, uint32_t framebuffer_
if((render_comp.renderable_types & signature) == signature)
{
HydraMeshComponent mesh_comp = ecs->GetComponent<HydraMeshComponent>(entity_id);
HydraVertexBuffer& vertex_buffer = vert_buffer_mananger->GetVertexBuffer(mesh_comp.vertex_buffer_id);
if(mesh_comp.mesh_state == HYDRA_STATE::Ready)
{
HydraVertexBuffer& vertex_buffer = vert_buffer_mananger->GetVertexBuffer(mesh_comp.vertex_buffer_id);
glBindVertexArray(vertex_buffer.vao);
glDrawElements(GL_TRIANGLES, vertex_buffer.triangle_count, GL_UNSIGNED_INT, (void*)0 );
glBindVertexArray(0);
glBindVertexArray(vertex_buffer.vao);
glDrawElements(GL_TRIANGLES, vertex_buffer.triangle_count, GL_UNSIGNED_INT, (void*)0 );
glBindVertexArray(0);
}
}
}
glBindFramebuffer(GL_FRAMEBUFFER, 0);
@@ -34,7 +34,7 @@ void HydraShadowPipeline::Shutdown()
void HydraShadowPipeline::Render()
{
glViewport(0, 0, SHADOW_MAP_SIZE, SHADOW_MAP_SIZE);
glEnable(GL_DEPTH_TEST); // Depth testing must be active
glDepthMask(GL_TRUE); // Depth buffer must be writable
@@ -51,7 +51,7 @@ void HydraShadowPipeline::_RenderPointShadowMaps()
HydraECS *ecs = GetEngine()->ECS();
std::shared_ptr<HydraRenderSystem> render_system = ecs->GetSystem<HydraRenderSystem>();
std::shared_ptr<HydraPointShadowSourceSystem> shadow_system = ecs->GetSystem<HydraPointShadowSourceSystem>();
glViewport(0, 0, POINT_SHADOW_MAP_SIZE, POINT_SHADOW_MAP_SIZE);
for (HydraID entity_id : shadow_system->Entities)
{
HydraPointShadowSourceComponent shad_comp = GetEngine()->ECS()->GetComponent<HydraPointShadowSourceComponent>(entity_id);
@@ -74,7 +74,7 @@ void HydraShadowPipeline::_RenderDirectionalShadowMaps()
HydraECS *ecs = GetEngine()->ECS();
std::shared_ptr<HydraRenderSystem> render_system = ecs->GetSystem<HydraRenderSystem>();
std::shared_ptr<HydraDirectionalShadowSourceSystem> shadow_system = ecs->GetSystem<HydraDirectionalShadowSourceSystem>();
glViewport(0, 0, DIRECTIONAL_SHADOW_MAP_SIZE, DIRECTIONAL_SHADOW_MAP_SIZE);
for (HydraID entity_id : shadow_system->Entities)
{
HydraDirectionalShadowSourceComponent shad_comp = GetEngine()->ECS()->GetComponent<HydraDirectionalShadowSourceComponent>(entity_id);
@@ -95,7 +95,7 @@ void HydraShadowPipeline::_RenderSpotShadowMaps()
HydraECS *ecs = GetEngine()->ECS();
std::shared_ptr<HydraRenderSystem> render_system = ecs->GetSystem<HydraRenderSystem>();
std::shared_ptr<HydraSpotShadowSourceSystem> shadow_system = ecs->GetSystem<HydraSpotShadowSourceSystem>();
glViewport(0, 0, SPOT_SHADOW_MAP_SIZE, SPOT_SHADOW_MAP_SIZE);
for (HydraID entity_id : shadow_system->Entities)
{
HydraSpotShadowSourceComponent shad_comp = GetEngine()->ECS()->GetComponent<HydraSpotShadowSourceComponent>(entity_id);
@@ -25,7 +25,7 @@ public:
HydraRenderSettings render_settings = engine->RenderSettings();
*m_texture_id = tex_buffer_manager->CreateTextureArray("shadow_FB",
SHADOW_MAP_SIZE, SHADOW_MAP_SIZE,
DIRECTIONAL_SHADOW_MAP_SIZE, DIRECTIONAL_SHADOW_MAP_SIZE,
GL_RGBA8,
GL_NEAREST,
GL_NEAREST,
@@ -34,7 +34,7 @@ public:
HydraTextureBuffer texture = tex_buffer_manager->GetTexture(*m_texture_id);
*m_depth_texture_id = tex_buffer_manager->CreateTextureArray("shadow_depth_buffer",
SHADOW_MAP_SIZE, SHADOW_MAP_SIZE,
DIRECTIONAL_SHADOW_MAP_SIZE, DIRECTIONAL_SHADOW_MAP_SIZE,
GL_DEPTH_COMPONENT32F,
GL_NEAREST,
GL_NEAREST,
@@ -27,7 +27,7 @@ public:
HydraTextureBuffer texture = tex_buffer_manager->GetTexture(*m_texture_id);
*m_depth_texture_id = tex_buffer_manager->CreateCubemapTexture("shadow_depth_buffer",
SHADOW_MAP_SIZE, SHADOW_MAP_SIZE,
POINT_SHADOW_MAP_SIZE, POINT_SHADOW_MAP_SIZE,
GL_DEPTH_COMPONENT32F,
GL_NEAREST,
GL_NEAREST);
@@ -35,7 +35,7 @@ public:
// HydraTextureBuffer texture = tex_buffer_manager->GetTexture(*m_texture_id);
*m_depth_texture_id = tex_buffer_manager->CreateTexture("shadow_depth_buffer",
SHADOW_MAP_SIZE, SHADOW_MAP_SIZE,
SPOT_SHADOW_MAP_SIZE, SPOT_SHADOW_MAP_SIZE,
GL_DEPTH_COMPONENT32F,
GL_NEAREST,
GL_NEAREST,
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

@@ -161,28 +161,28 @@
{
"directoryIndex" : 0,
"id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
"jsonFile" : "target-ALL_BUILD-Debug-1b3c50ca02e96d15a11f.json",
"jsonFile" : "target-ALL_BUILD-Debug-b312317e09460fad670b.json",
"name" : "ALL_BUILD",
"projectIndex" : 0
},
{
"directoryIndex" : 1,
"id" : "ALL_BUILD::@fafd37b19aacd4c483ed",
"jsonFile" : "target-ALL_BUILD-Debug-21126e6f26f8151b82a1.json",
"jsonFile" : "target-ALL_BUILD-Debug-30097c8e6651db3aff43.json",
"name" : "ALL_BUILD",
"projectIndex" : 1
},
{
"directoryIndex" : 0,
"id" : "HydraClient::@6890427a1f51a3e7e1df",
"jsonFile" : "target-HydraClient-Debug-ccca9689ebe6b19fe65a.json",
"jsonFile" : "target-HydraClient-Debug-78ce361b98c7c89e9629.json",
"name" : "HydraClient",
"projectIndex" : 0
},
{
"directoryIndex" : 1,
"id" : "HydraEngine::@fafd37b19aacd4c483ed",
"jsonFile" : "target-HydraEngine-Debug-83a9a5954d1e93fe25f7.json",
"jsonFile" : "target-HydraEngine-Debug-ef5f850986821f3b6f03.json",
"name" : "HydraEngine",
"projectIndex" : 1
},
@@ -355,28 +355,28 @@
{
"directoryIndex" : 0,
"id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
"jsonFile" : "target-ALL_BUILD-Release-1b3c50ca02e96d15a11f.json",
"jsonFile" : "target-ALL_BUILD-Release-b312317e09460fad670b.json",
"name" : "ALL_BUILD",
"projectIndex" : 0
},
{
"directoryIndex" : 1,
"id" : "ALL_BUILD::@fafd37b19aacd4c483ed",
"jsonFile" : "target-ALL_BUILD-Release-21126e6f26f8151b82a1.json",
"jsonFile" : "target-ALL_BUILD-Release-30097c8e6651db3aff43.json",
"name" : "ALL_BUILD",
"projectIndex" : 1
},
{
"directoryIndex" : 0,
"id" : "HydraClient::@6890427a1f51a3e7e1df",
"jsonFile" : "target-HydraClient-Release-f300bf694420197200c5.json",
"jsonFile" : "target-HydraClient-Release-5f750d1feb1d099be72b.json",
"name" : "HydraClient",
"projectIndex" : 0
},
{
"directoryIndex" : 1,
"id" : "HydraEngine::@fafd37b19aacd4c483ed",
"jsonFile" : "target-HydraEngine-Release-fd732da53ad87180e5c2.json",
"jsonFile" : "target-HydraEngine-Release-b6b86a0ceaecf84fa1f5.json",
"name" : "HydraEngine",
"projectIndex" : 1
},
@@ -549,28 +549,28 @@
{
"directoryIndex" : 0,
"id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
"jsonFile" : "target-ALL_BUILD-MinSizeRel-1b3c50ca02e96d15a11f.json",
"jsonFile" : "target-ALL_BUILD-MinSizeRel-b312317e09460fad670b.json",
"name" : "ALL_BUILD",
"projectIndex" : 0
},
{
"directoryIndex" : 1,
"id" : "ALL_BUILD::@fafd37b19aacd4c483ed",
"jsonFile" : "target-ALL_BUILD-MinSizeRel-21126e6f26f8151b82a1.json",
"jsonFile" : "target-ALL_BUILD-MinSizeRel-30097c8e6651db3aff43.json",
"name" : "ALL_BUILD",
"projectIndex" : 1
},
{
"directoryIndex" : 0,
"id" : "HydraClient::@6890427a1f51a3e7e1df",
"jsonFile" : "target-HydraClient-MinSizeRel-707588ed524688a0f034.json",
"jsonFile" : "target-HydraClient-MinSizeRel-0b1754e9511a8dea2861.json",
"name" : "HydraClient",
"projectIndex" : 0
},
{
"directoryIndex" : 1,
"id" : "HydraEngine::@fafd37b19aacd4c483ed",
"jsonFile" : "target-HydraEngine-MinSizeRel-c9a2609fa141f4bef8ca.json",
"jsonFile" : "target-HydraEngine-MinSizeRel-585ede66b397f0d9fbdf.json",
"name" : "HydraEngine",
"projectIndex" : 1
},
@@ -743,28 +743,28 @@
{
"directoryIndex" : 0,
"id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
"jsonFile" : "target-ALL_BUILD-RelWithDebInfo-1b3c50ca02e96d15a11f.json",
"jsonFile" : "target-ALL_BUILD-RelWithDebInfo-b312317e09460fad670b.json",
"name" : "ALL_BUILD",
"projectIndex" : 0
},
{
"directoryIndex" : 1,
"id" : "ALL_BUILD::@fafd37b19aacd4c483ed",
"jsonFile" : "target-ALL_BUILD-RelWithDebInfo-21126e6f26f8151b82a1.json",
"jsonFile" : "target-ALL_BUILD-RelWithDebInfo-30097c8e6651db3aff43.json",
"name" : "ALL_BUILD",
"projectIndex" : 1
},
{
"directoryIndex" : 0,
"id" : "HydraClient::@6890427a1f51a3e7e1df",
"jsonFile" : "target-HydraClient-RelWithDebInfo-a4b1a5ac731bdcc03733.json",
"jsonFile" : "target-HydraClient-RelWithDebInfo-19110864938462bdea5b.json",
"name" : "HydraClient",
"projectIndex" : 0
},
{
"directoryIndex" : 1,
"id" : "HydraEngine::@fafd37b19aacd4c483ed",
"jsonFile" : "target-HydraEngine-RelWithDebInfo-297d246892e18b3f6177.json",
"jsonFile" : "target-HydraEngine-RelWithDebInfo-78d0f79bf6771d67bc77.json",
"name" : "HydraEngine",
"projectIndex" : 1
},
@@ -27,7 +27,7 @@
"objects" :
[
{
"jsonFile" : "codemodel-v2-5bd18c6e9c2d6656f777.json",
"jsonFile" : "codemodel-v2-b51b65a9e1b2b40062f3.json",
"kind" : "codemodel",
"version" :
{
@@ -100,7 +100,7 @@
}
},
{
"jsonFile" : "codemodel-v2-5bd18c6e9c2d6656f777.json",
"jsonFile" : "codemodel-v2-b51b65a9e1b2b40062f3.json",
"kind" : "codemodel",
"version" :
{
@@ -22,10 +22,10 @@
"dependencies" :
[
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
}
],
"folder" :
@@ -21,14 +21,14 @@
},
"dependencies" :
[
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraClient::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -41,10 +41,10 @@
"orderDependencies" :
[
{
"id" : "HydraClient::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "HydraClient::@6890427a1f51a3e7e1df"
}
],
"paths" :
@@ -22,10 +22,10 @@
"dependencies" :
[
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
}
],
"folder" :
@@ -21,14 +21,14 @@
},
"dependencies" :
[
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraClient::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -41,10 +41,10 @@
"orderDependencies" :
[
{
"id" : "HydraClient::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "HydraClient::@6890427a1f51a3e7e1df"
}
],
"paths" :
@@ -22,10 +22,10 @@
"dependencies" :
[
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
}
],
"folder" :
@@ -21,14 +21,14 @@
},
"dependencies" :
[
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraClient::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -41,10 +41,10 @@
"orderDependencies" :
[
{
"id" : "HydraClient::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "HydraClient::@6890427a1f51a3e7e1df"
}
],
"paths" :
@@ -22,10 +22,10 @@
"dependencies" :
[
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
}
],
"folder" :
@@ -21,14 +21,14 @@
},
"dependencies" :
[
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraClient::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -41,10 +41,10 @@
"orderDependencies" :
[
{
"id" : "HydraClient::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "HydraClient::@6890427a1f51a3e7e1df"
}
],
"paths" :
@@ -106,12 +106,12 @@
],
"dependencies" :
[
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"backtrace" : 2,
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
}
],
"id" : "HydraClient::@6890427a1f51a3e7e1df",
@@ -106,12 +106,12 @@
],
"dependencies" :
[
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"backtrace" : 2,
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
}
],
"id" : "HydraClient::@6890427a1f51a3e7e1df",
@@ -106,12 +106,12 @@
],
"dependencies" :
[
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"backtrace" : 2,
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
}
],
"id" : "HydraClient::@6890427a1f51a3e7e1df",
@@ -106,12 +106,12 @@
],
"dependencies" :
[
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"backtrace" : 2,
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
}
],
"id" : "HydraClient::@6890427a1f51a3e7e1df",
@@ -202,17 +202,17 @@
21,
23,
25,
28,
31,
34,
37,
27,
30,
33,
36,
39,
43,
41,
45,
49,
53,
47,
51,
55,
67,
57,
69,
71,
73,
@@ -225,8 +225,8 @@
87,
89,
91,
94,
97,
93,
96,
99,
101,
103,
@@ -236,7 +236,8 @@
111,
113,
115,
119
117,
121
]
}
],
@@ -326,17 +327,17 @@
21,
23,
25,
28,
31,
34,
37,
27,
30,
33,
36,
39,
43,
41,
45,
49,
53,
47,
51,
55,
67,
57,
69,
71,
73,
@@ -349,8 +350,8 @@
87,
89,
91,
94,
97,
93,
96,
99,
101,
103,
@@ -360,7 +361,8 @@
111,
113,
115,
119
117,
121
]
},
{
@@ -382,27 +384,26 @@
22,
24,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
40,
41,
42,
43,
44,
46,
47,
48,
49,
50,
51,
52,
53,
54,
56,
57,
58,
59,
60,
@@ -412,6 +413,7 @@
64,
65,
66,
67,
68,
70,
72,
@@ -425,9 +427,9 @@
88,
90,
92,
93,
94,
95,
96,
97,
98,
100,
102,
@@ -438,9 +440,10 @@
112,
114,
116,
117,
118,
120
119,
120,
122
]
}
],
@@ -582,6 +585,17 @@
"path" : "HydraEngine/source/actor/HydraTestCubeActor.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "HydraEngine/source/actor/HydraTestLightActor.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "HydraEngine/source/actor/HydraTestLightActor.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
@@ -202,17 +202,17 @@
21,
23,
25,
28,
31,
34,
37,
27,
30,
33,
36,
39,
43,
41,
45,
49,
53,
47,
51,
55,
67,
57,
69,
71,
73,
@@ -225,8 +225,8 @@
87,
89,
91,
94,
97,
93,
96,
99,
101,
103,
@@ -236,7 +236,8 @@
111,
113,
115,
119
117,
121
]
}
],
@@ -326,17 +327,17 @@
21,
23,
25,
28,
31,
34,
37,
27,
30,
33,
36,
39,
43,
41,
45,
49,
53,
47,
51,
55,
67,
57,
69,
71,
73,
@@ -349,8 +350,8 @@
87,
89,
91,
94,
97,
93,
96,
99,
101,
103,
@@ -360,7 +361,8 @@
111,
113,
115,
119
117,
121
]
},
{
@@ -382,27 +384,26 @@
22,
24,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
40,
41,
42,
43,
44,
46,
47,
48,
49,
50,
51,
52,
53,
54,
56,
57,
58,
59,
60,
@@ -412,6 +413,7 @@
64,
65,
66,
67,
68,
70,
72,
@@ -425,9 +427,9 @@
88,
90,
92,
93,
94,
95,
96,
97,
98,
100,
102,
@@ -438,9 +440,10 @@
112,
114,
116,
117,
118,
120
119,
120,
122
]
}
],
@@ -582,6 +585,17 @@
"path" : "HydraEngine/source/actor/HydraTestCubeActor.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "HydraEngine/source/actor/HydraTestLightActor.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "HydraEngine/source/actor/HydraTestLightActor.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
@@ -202,17 +202,17 @@
21,
23,
25,
28,
31,
34,
37,
27,
30,
33,
36,
39,
43,
41,
45,
49,
53,
47,
51,
55,
67,
57,
69,
71,
73,
@@ -225,8 +225,8 @@
87,
89,
91,
94,
97,
93,
96,
99,
101,
103,
@@ -236,7 +236,8 @@
111,
113,
115,
119
117,
121
]
}
],
@@ -326,17 +327,17 @@
21,
23,
25,
28,
31,
34,
37,
27,
30,
33,
36,
39,
43,
41,
45,
49,
53,
47,
51,
55,
67,
57,
69,
71,
73,
@@ -349,8 +350,8 @@
87,
89,
91,
94,
97,
93,
96,
99,
101,
103,
@@ -360,7 +361,8 @@
111,
113,
115,
119
117,
121
]
},
{
@@ -382,27 +384,26 @@
22,
24,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
40,
41,
42,
43,
44,
46,
47,
48,
49,
50,
51,
52,
53,
54,
56,
57,
58,
59,
60,
@@ -412,6 +413,7 @@
64,
65,
66,
67,
68,
70,
72,
@@ -425,9 +427,9 @@
88,
90,
92,
93,
94,
95,
96,
97,
98,
100,
102,
@@ -438,9 +440,10 @@
112,
114,
116,
117,
118,
120
119,
120,
122
]
}
],
@@ -582,6 +585,17 @@
"path" : "HydraEngine/source/actor/HydraTestCubeActor.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "HydraEngine/source/actor/HydraTestLightActor.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "HydraEngine/source/actor/HydraTestLightActor.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
@@ -202,17 +202,17 @@
21,
23,
25,
28,
31,
34,
37,
27,
30,
33,
36,
39,
43,
41,
45,
49,
53,
47,
51,
55,
67,
57,
69,
71,
73,
@@ -225,8 +225,8 @@
87,
89,
91,
94,
97,
93,
96,
99,
101,
103,
@@ -236,7 +236,8 @@
111,
113,
115,
119
117,
121
]
}
],
@@ -326,17 +327,17 @@
21,
23,
25,
28,
31,
34,
37,
27,
30,
33,
36,
39,
43,
41,
45,
49,
53,
47,
51,
55,
67,
57,
69,
71,
73,
@@ -349,8 +350,8 @@
87,
89,
91,
94,
97,
93,
96,
99,
101,
103,
@@ -360,7 +361,8 @@
111,
113,
115,
119
117,
121
]
},
{
@@ -382,27 +384,26 @@
22,
24,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
40,
41,
42,
43,
44,
46,
47,
48,
49,
50,
51,
52,
53,
54,
56,
57,
58,
59,
60,
@@ -412,6 +413,7 @@
64,
65,
66,
67,
68,
70,
72,
@@ -425,9 +427,9 @@
88,
90,
92,
93,
94,
95,
96,
97,
98,
100,
102,
@@ -438,9 +440,10 @@
112,
114,
116,
117,
118,
120
119,
120,
122
]
}
],
@@ -582,6 +585,17 @@
"path" : "HydraEngine/source/actor/HydraTestCubeActor.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "HydraEngine/source/actor/HydraTestLightActor.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "HydraEngine/source/actor/HydraTestLightActor.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -9,6 +9,7 @@ C:\Code\HydraV3\HydraEngine\source\actor\HydraPlayerActor.cpp;C:\Code\HydraV3\bu
C:\Code\HydraV3\HydraEngine\source\actor\HydraPointLightActor.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraPointLightActor.obj
C:\Code\HydraV3\HydraEngine\source\actor\HydraSpotLightActor.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraSpotLightActor.obj
C:\Code\HydraV3\HydraEngine\source\actor\HydraTestCubeActor.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraTestCubeActor.obj
C:\Code\HydraV3\HydraEngine\source\actor\HydraTestLightActor.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraTestLightActor.obj
C:\Code\HydraV3\HydraEngine\source\actor\HydraTextureDebugActor.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraTextureDebugActor.obj
C:\Code\HydraV3\HydraEngine\source\buffer\HydraBufferManager.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraBufferManager.obj
C:\Code\HydraV3\HydraEngine\source\buffer\HydraLightBufferManager.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraLightBufferManager.obj
@@ -1,4 +1,4 @@
^C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\CMAKECXXCOMPILERID.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAACTORMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRABUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRACAMERA.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADEFERREDPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADIRECTIONALLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADIRECTIONALSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAECS.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAENGINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAFORWARDPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGAMEPROXY.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGLTFACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGLTFLOADER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAINPUTMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRALIGHTBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRALIGHTSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMATERIALBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMATERIALSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMESHMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMESHSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAOBJECT.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAOUTPUTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPLANEACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPLAYERACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPOINTLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPOINTSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERSTAGE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASHADOWBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASHADOWPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASPOTLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASPOTSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASYSTEMMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASK.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASKBARRIER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASKSCHEDULER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATESTCUBEACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATEXTUREBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATEXTUREDEBUGACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATHREAD.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATRANSFORMSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAVERTEXBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAWINDOWMANAGER.OBJ
^C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\CMAKECXXCOMPILERID.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAACTORMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRABUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRACAMERA.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADEFERREDPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADIRECTIONALLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADIRECTIONALSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAECS.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAENGINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAFORWARDPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGAMEPROXY.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGLTFACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGLTFLOADER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAINPUTMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRALIGHTBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRALIGHTSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMATERIALBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMATERIALSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMESHMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMESHSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAOBJECT.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAOUTPUTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPLANEACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPLAYERACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPOINTLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPOINTSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERSTAGE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASHADOWBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASHADOWPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASPOTLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASPOTSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASYSTEMMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASK.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASKBARRIER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASKSCHEDULER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATESTCUBEACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATESTLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATEXTUREBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATEXTUREDEBUGACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATHREAD.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATRANSFORMSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAVERTEXBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAWINDOWMANAGER.OBJ
C:\Code\HydraV3\build\HydraEngine\Debug\HydraEngine.lib
C:\Code\HydraV3\build\HydraEngine\Debug\HydraEngine.EXP
C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraEngine.ilk
Binary file not shown.
+2
View File
@@ -450,6 +450,8 @@ if %errorlevel% neq 0 goto :VCEnd</Command>
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraSpotLightActor.h" />
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTestCubeActor.cpp" />
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTestCubeActor.h" />
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTestLightActor.cpp" />
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTestLightActor.h" />
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTextureDebugActor.cpp" />
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTextureDebugActor.h" />
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraBuffer.h" />
@@ -34,6 +34,9 @@
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTestCubeActor.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTestLightActor.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTextureDebugActor.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -186,6 +189,9 @@
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTestCubeActor.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTestLightActor.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\actor\HydraTextureDebugActor.h">
<Filter>Header Files</Filter>
</ClInclude>
+4 -7
View File
@@ -1,11 +1,8 @@
================================================================================
Linker Errors
Generated: 2026-08-15T14:34:09.799Z
Total Errors: 2
Generated: 2026-08-17T09:12:08.024Z
Total Errors: 1
================================================================================
[LNK2019] (MSVC)
unresolved external symbol "public: unsigned int __cdecl HydraTextureBufferManager::CreateCubemapTexture(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int)" (?CreateCubemapTexture@HydraTextureBufferManager@@QEAAIV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IIIII@Z) referenced in function "public: virtual void __cdecl HydraCreateCubemapShadowFrameBuffer::Process(void)" (?Process@HydraCreateCubemapShadowFrameBuffer@@UEAAXXZ) [C:\Code\HydraV3\build\HydraEngine\HydraEngine.vcxproj]
[LNK1120] (MSVC)
1 unresolved externals [C:\Code\HydraV3\build\HydraEngine\HydraEngine.vcxproj]
[LNK1201] (MSVC)
error writing to program database 'C:\Code\HydraV3\build\HydraEngine\Debug\HydraEngine.pdb'; check for insufficient disk space, invalid path, or insufficient privilege [C:\Code\HydraV3\build\HydraEngine\HydraEngine.vcxproj]